显示所有 IP 地址的 Windows 命令

Bé *_*a 1 41 networking windows ip

我知道有一行命令及其参数可以帮助显示 LAN 上的所有计算机 IP 地址(正在使用的 IP 地址),而且我的计算机也是客户端,正如所显示的那样,但我忘记了。它是什么?

小智 35

您可以执行该arp -a命令以显示表中有关网络上计算机的所有ARP条目。

来源

  • 它显示了您的计算机知道/与之交谈的每个系统 - 但是,它可能不完整 - 我用 arp -a 进行了一个快速实验,直到我对它执行 ping 操作它才显示我的一两个系统。 (7认同)

Cli*_*ord 28

并非所有具有 IP 地址的东西都是计算机 - 我发现这些建议中没有一个返回所有活动的 IP 地址 - 事实上,大多数返回的很少。我的家庭网络结合了有线和无线设备以及两个路由器、手机、电视、PVR、Apple AirPort,可能还有一些我已经忘记的东西。我使用以下命令扫描 192.168.1.xxx 子网上的所有地址:

for /L %i in (0,1,255) do ping -n 1 -w 250 192.168.1.%i>>ipaddress.txt
Run Code Online (Sandbox Code Playgroud)

生成的文件 ipaddress.txt 包含所有地址的 ping 结果,我寻找那些带有“ Received = 1”的地址——目前有 16 个地址返回了结果——我家里只有 4 台电脑——而且它们并没有全部打开。

  • 建议的编辑(回滚)`for /L %i in (0,1,255) do ping -n 1 192.168.1.%i -4 | findstr -m "bytes=32" >> ipaddress.txt` 有优点,但不是答案的基础,与使用 `Received = 1` 而不是 `bytes=32` 的其余答案不一致,并且是不一定像我那样做。如果有人认为该建议有用,我将添加此评论。 (2认同)
  • `for /L %i in (1,1,254)` 可能更合适,因为 `xxxxxx.0` 是整个网络的地址,而 `xxxxxx.255` 是广播地址。 (2认同)

Dav*_*ann 13

有一个net view /all命令将列出连接到同一 LAN 的所有计算机名称。

从中您可以使用nslookup <computer name>命令检索单个 IP 地址或编写批处理脚本来为您执行此操作。

这是我拼凑起来的一个示例批次来说明。

@echo off
setlocal EnableDelayedExpansion
set "xNext="
set "xComputer="
for /f %%A in ('net view /all') do (
    set "xComputer=%%~A"
    if "!xComputer:~0,2!"=="\\" for /f "tokens=2,* delims=. " %%X in ('nslookup %%A') do (
        if "!xNext!"=="1" (
            echo.!xComputer! = %%X.%%Y
            set "xNext=0"
        )
        if "!xComputer:~2!"=="%%~X" set "xNext=1"
    )
)
endlocal
pause
Run Code Online (Sandbox Code Playgroud)


Dre*_*pin 7

除了arp -a, net view /all, 或编写批处理脚本之外,没有本地/内置命令行可以执行此操作(至少我不知道)。

如果您愿意使用非本地命令,我建议您使用Nmap。您可以运行nmap -sn 192.168.0.0/24(与一个合适的为您的局域网替换子网)来实现你在找什么,更可靠所以比net view /allarp -a在我看来。


小智 6

正如其他人所指出的,您可以使用arp -a,但请确保首先 ping 广播地址,以便 ARP 报告所有设备。例如,ping 192.168.0.255

您将获得通过 IP 和 MAC 地址连接到网络的所有设备的列表。您可以在https://aruljohn.com/mac.pl等网站上查找 MAC 地址,以了解 NIC 的供应商是谁。这应该可以帮助您缩小大多数设备的范围。即电脑、打印机、电视、手机等。