是否可以在 windows cmd 行中检查所有网络地址(使用 ping 或类似地址)以查看哪些网络地址被占用/有活动设备:
IE。执行以下操作的操作:
for i = 0 to 255
ping 192.168.1.i //Print this
end
这显然是伪代码。我想知道是否可以在 windows cmd 中执行类似的操作。如果您不需要批处理文件,那就太好了,但我知道这是否不可能。
PS。另外请提及是否有程序可以执行此操作,但最好在 cmd 中执行此操作。
是否可以在 windows cmd 行中检查所有网络地址(使用 ping 或类似地址)以查看哪些网络地址被占用/有活动设备:
IE。执行以下操作的操作:
for i = 0 to 255
ping 192.168.1.i //Print this
end
这显然是伪代码。我想知道是否可以在 windows cmd 中执行类似的操作。如果您不需要批处理文件,那就太好了,但我知道这是否不可能。
PS。另外请提及是否有程序可以执行此操作,但最好在 cmd 中执行此操作。
打开命令提示符并输入以下内容:
FOR /L %i IN (1,1,254) DO ping -n 1 192.168.10.%i | FIND /i "Reply">>c:\ipaddresses.txt
更改 192.168.10 以匹配您自己的网络。
通过使用 -n 1,您只要求向每台计算机发送 1 个数据包,而不是通常的 4 个数据包。
上述命令将 ping 192.168.10.0 网络上的所有 IP 地址,并在 C:\ 驱动器中创建一个名为 ipaddresses.txt 的文本文档。此文本文档应仅包含回复 ping 请求的 IP 地址。
虽然完成需要相当长的时间,但您也可以通过在 ping 命令中添加 -a 来将 IP 地址解析为主机名称。
FOR /L %i IN (1,1,254) DO ping -a -n 1 192.168.10.%i | FIND /i "Reply">>c:\ipaddresses.txt
这是从这里
希望这可以帮助
我知道这是一个迟到的响应,但一个巧妙的方法是 ping 填充本地 arp 缓存的广播地址。
然后可以通过运行 arp -a 来显示这将列出本地 arp 表中的所有地址。
ping 192.168.1.255
arp -a
希望这是人们可以使用的一个不错的选择。
就速度而言,最佳实用程序是Nmap。
写@cmd提示:
nmap -sn -oG ip.txt 192.168.1.1-255
这只会 ping 给定范围内的所有 IP 地址并将其存储在简单的文本文件中
使用 Nmap扫描255台主机仅需2秒。
如果 windows 框位于同一子网中:
for /L %a in (1,1,254) do start ping 192.168.0.%a
这将在 15 秒内完成,并且
arp -a
将返回任何活着的主机。
我在 Windows 中知道的最快的本地方式。
这篇文章提出了同样的问题,但对于 linux - 您可能会发现它很有帮助。 向子网上的每个 IP 发送 ping
nmap 可能是最好的工具,因为它可以帮助识别主机操作系统并且速度更快。它可用于 nmap.org 站点上的 windows 平台
您要做的就是查看计算机是否连接到网络并收集它们的 IP 地址。您可以使用angeryIP 扫描器:http ://angryip.org/查看特定子网或子网组上正在使用的IP 地址。
在尝试查看正在使用的 IP 不在我的 DHCP 内时,我发现此工具非常有用。
egmackenzie 针对 Windows 的“arp -a”解决方案的扩展和有用的补充 -
在 WiFi 网络上搜索我的 iPhone 的 Windows 示例
(pre: iPhone WiFi 禁用)
请参见下面的示例:
如果有兴趣,这里有一篇关于使用 'arp -d' 的好文章——
在 Windows 8 上的批处理脚本中似乎有些事情发生了变化,而 DGG 上面的解决方案现在导致命令提示符崩溃。
以下解决方案对我有用:
@echo off
set /a n=0
:repeat
set /a n+=1
echo 192.168.1.%n%
ping -n 1 -w 500 192.168.1.%n% | FIND /i "Reply">>ipaddresses.txt
if %n% lss 254 goto repeat
type ipaddresses.txt
aping可以提供主机列表以及每个主机是否已响应 ping。
aping -show all 192.168.1.*
@ECHO OFF
IF "%SUBNET%"=="" SET SUBNET=10
:ARGUMENTS
ECHO SUBNET=%SUBNET%
ECHO ARGUMENT %1
IF "%1"=="SUM" GOTO SUM
IF "%1"=="SLOW" GOTO SLOW
IF "%1"=="ARP" GOTO ARP
IF "%1"=="FAST" GOTO FAST
REM PRINT ARP TABLE BY DEFAULT
:DEFAULT
ARP -a
GOTO END
REM METHOD 1 ADDRESS AT A TIME
:SLOW
ECHO START SCAN
ECHO %0 > ipaddresses.txt
DATE /T >> ipaddresses.txt
TIME /T >> ipaddresses.txt
FOR /L %%i IN (1,1,254) DO ping -a -n 2 192.168.%SUBNET%.%%i | FIND /i "TTL=" >> ipaddresses.txt
GOTO END
REM METHOD 2 MULTITASKING ALL ADDRESS AT SAME TIME
:FAST
ECHO START FAST SCANNING 192.168.%SUBNET%.X
set /a n=0
:FASTLOOP
set /a n+=1
ECHO 192.168.%SUBNET%.%n%
START CMD.exe /c call ipaddress.bat 192.168.%SUBNET%.%n%
IF %n% lss 254 GOTO FASTLOOP
GOTO END
:SUM
ECHO START SUM
ECHO %0 > ipaddresses.txt
DATE /T >> ipaddresses.txt
TIME /T >> ipaddresses.txt
FOR /L %%i IN (1,1,254) DO TYPE ip192.168.%SUBNET%.%%i.txt | FIND /i "TTL=" >> ipaddresses.txt
FOR /L %%i IN (1,1,254) DO DEL ip192.168.%SUBNET%.%%i.txt
type ipaddresses.txt
GOTO END
:ARP
ARP -a >> ipaddresses.txt
type ipaddresses.txt
GOTO END
:END
ECHO DONE WITH IP SCANNING
ECHO OPTION "%0 SLOW" FOR SCANNING 1 AT A TIME
ECHO OPTION "%0 SUM" FOR COMBINE ALL TO FILE
ECHO OPTION "%0 ARP" FOR ADD ARP - IP LIST
ECHO PARAMETER "SET SUBNET=X" FOR SUBNET
ECHO.
for /l %%a in (254, -1, 1) do (
for /l %%b in (1, 1, 254) do (
for %%c in (20, 168) do (
for %%e in (172, 192) do (
ping /n 1 %%e.%%c.%%b.%%a>>ping.txt
)
)
)
)
pause>nul