是否可以在Windows cmd行中检查所有网络地址(使用ping或类似地址),以查看哪些网络地址占用/拥有有效设备:
即。做类似以下事情的事情:
for i = 0 to 255
ping 192.168.1.i //Print this
end
这显然是伪代码。我想知道是否有可能在Windows cmd中做这样的事情。如果您不需要批处理文件会很棒,但我知道这是不可能的。
PS。另外请提一下,如果有一个程序可以做到这一点,但在cmd中这样做会很好。
答案 0 :(得分:99)
打开命令提示符并输入以下内容:
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地址。< / p>
虽然完成还需要相当长的时间,但您也可以通过在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
这是Here
希望这有帮助
答案 1 :(得分:28)
我知道这是一个迟到的回复,但这样做的一个简洁方法是ping广播地址,填充本地arp缓存。
然后可以通过运行arp -a来显示它,它将列出本地arp表中的所有地址。
ping 192.168.1.255
arp -a
希望这是人们可以使用的一个很好的选择。
答案 2 :(得分:16)
速度方面的最佳效用 Nmap 。
写@ cmd提示符:
Nmap -sn -oG ip.txt 192.168.1.1-255
这只会ping给定范围内的所有IP地址,并将其存储在简单的文本文件中
使用Nmap扫描 255 主机只需 2 秒。
答案 3 :(得分:5)
这篇文章提出了同样的问题,但是对于linux - 你可能会发现它很有帮助。 Send a ping to each IP on a subnet
nmap可能是最好的工具,因为它可以帮助识别主机操作系统并加快速度。它适用于nmap.org网站上的Windows平台
答案 4 :(得分:3)
如果Windows框位于同一子网中:
for / L%a in(1,1,254)确实启动ping 192.168.0。%a
这将在不到15秒的时间内完成
arp -a
将返回任何活着的主机。
我在Windows中了解最快的原生方式。
答案 5 :(得分:2)
您要做的就是查看计算机是否已连接到网络并收集其IP地址。您可以使用angryIP scanner http://angryip.org/来查看特定子网或子网组上正在使用的IP地址。
在尝试查看不在我的DHCP内部的IP时,我发现此工具非常有用。
答案 6 :(得分:2)
egmackenzie针对Windows的“arp -a”解决方案的扩展和有用的补充 -
Windows示例在WiFi网络上搜索我的iPhone
(之前:禁用iPhone WiFi)
见下文例如:
如果感兴趣的话,这里有一个关于'arp -d'使用的好文章 -
答案 7 :(得分:1)
在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
答案 8 :(得分:0)
@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.
答案 9 :(得分:0)
aping可以提供主机列表以及每个主机是否响应ping。
aping -show all 192.168.1.*
答案 10 :(得分:-2)
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