Ping网络,窗口中的所有地址

时间:2012-12-04 22:44:24

标签: windows batch-file cmd

是否可以在Windows cmd行中检查所有网络地址(使用ping或类似地址),以查看哪些网络地址占用/拥有有效设备:

即。做类似以下事情的事情:

for i = 0 to 255
    ping 192.168.1.i //Print this
end

这显然是伪代码。我想知道是否有可能在Windows cmd中做这样的事情。如果您不需要批处理文件会很棒,但我知道这是不可能的。

PS。另外请提一下,如果有一个程序可以做到这一点,但在cmd中这样做会很好。

11 个答案:

答案 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)

  • Open Command Prompt in Admin mode(R.C。开始&看菜单)
  • arp -d&lt; - 清除arp列表!
  • ping 10.1.10.255&lt; - 占用你的子网,然后ping'255',每个人
  • arp -a
  • iPhone WiFi
  • ping 10.1.10.255
  • arp -a

见下文例如:

enter image description here

如果感兴趣的话,这里有一个关于'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