我知道命令及其参数的一行可以帮助显示LAN上的所有计算机IP地址(正在使用的那些IP地址),而且我的计算机也是客户端(如显示的那样),但我忘记了。它是什么?
我知道命令及其参数的一行可以帮助显示LAN上的所有计算机IP地址(正在使用的那些IP地址),而且我的计算机也是客户端(如显示的那样),但我忘记了。它是什么?
Answers:
您可以执行arp -a
命令以在表中显示有关网络上计算机的所有ARP条目。
并非所有具有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
生成的文件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
也不一定是我的方式。如果有人认为该建议有用,我会添加此评论。
for /L %i in (1,1,254)
可能更合适,因为它xxxxxx.0
是整个网络的地址,xxxxxx.255
也是广播的地址。
有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
正如其他人指出的那样,您可以使用arp -a
确保首先对广播地址执行ping操作,以便ARP报告所有设备。例如,ping 192.168.0.255
您将获得按IP和MAC地址连接到网络的所有设备的列表。您可以在https://aruljohn.com/mac.pl等网站上查找MAC地址,以查找谁是NIC的供应商。这应该可以帮助您缩小大多数设备的范围。即计算机,打印机,电视,手机等。