如何同时ping范围内的IP地址[关闭]


39

我有一堆IP地址范围内的计算机,我想同时对它们进行ping操作,以快速而又肮脏的方式告知已打开哪些计算机。我可以使用哪些(免费)软件来执行此操作?

我正在使用Windows Vista


2
我尝试了愤怒的ip扫描仪和免费的ip扫描仪,将其最大线程数增加到我所追求的IP范围后,愤怒的速度似乎更快。
乔恩·凯奇

这很有可能会破坏某种安全性。最好将计算机设置为按一定间隔对中央服务器执行ping操作,或者在路由器处进行检查。
Journeyman Geek

Answers:




13

我用过这个命令

for %%i in 200 to 254 do ping 10.1.1.%%i 

出于类似的原因在批处理文件中


5
您确定同时进行ping吗?还是一台又一台机器!
Vineet Menon

1
同意,不能同时进行
hpavc

您是对的,这是顺序的,而不是同时的
Col


7

您可以执行以下操作,而不是手动ping通LAN上的所有IP地址:

打开命令提示符并键入:

FOR /L %i IN (1,1,254) DO ping -n 1 192.168.0.%i | FIND /i "Reply">>C:\ipaddresses.txt

-n 1 表示将仅向每个计算机发送1个ping数据包。

更改192.168.0以匹配您自己的网络ID。

这将对192.168.0.0网段上的所有IP地址执行ping操作,并创建一个名为ipaddresses.txtC:\ 的文本文件,该文件仅列出给出回复的IP地址。

您还可以添加-aping命令以将所有响应的IP地址解析为主机名,但是这样做将导致脚本花费大量时间来完成:

FOR /L %i IN (1,1,254) DO ping -a -n 1 192.168.0.%i | FIND /i "Reply">>C:\ipaddresses.txt

但这一次还是可以ping一次,不是吗?愤怒的IP扫描程序通过启动多个线程来一次ping通子网中的所有IP,因此只需很少的时间即可完成整个扫描。
Jon Cage 2010年

在机器上无法安装任何外部程序和/或仅文本控制台可用的情况下,效果很好。国际用户唯一需要注意的是,必须将“ Reply”字符串更改为本地ping版本。感谢分享!
Alberto M

6

尝试fping


它也可以在OSX上的brew上使用(以防万一有人从Google浏览并且标题中错过了Windows。)
Ross

4

您可以编写一个循环遍历IP地址范围并对其执行ping操作的Bash脚本。ping地址在10.1.1.1到10.1.1.255(含)范围内的示例:

for i in {100..255}
do
    ping 10.1.1.$i
done

我认为“ 500”要小于等于255?
David Mackintosh,2009年

2
而且我想ping 10.1.1.i可能是那样ping 10.1.1.$i
亚当·卢曾布劳斯

1
也不能同时进行
hpavc

相信您将需要传递“ -c”标志。类似于“ ping -c1 192.168.1.1”。否则,您将被困一阵子。
zee

3

将以下脚本保存在服务器上,扩展名为.bat或,.cmd然后从命令提示符处调用该文件。它会提示您输入IP地址范围。

请仅输入IP地址的三个八位字节。


@echo off

SET count=0
SET /p subnet=Please enter IP address range (for example, 192.168.0)

:start
SET /a count=%count%+1

cls
ECHO. & ECHO Trying %subnet%.%count% & ECHO.

ping -n 1 -w 1000 %subnet%.%count% >nul  
IF %errorlevel%==0 echo %subnet%.%count% UP >> c:\pingnet.log  
IF %errorlevel%==1 echo %subnet%.%count% DOWN >> c:\pingnet.log

IF %count%==254 goto :eof

GOTO start

一旦命令运行,它将pingnet.log在C驱动器的根目录中创建一个文本文件名。该文件应为您提供已用和已用(免费)IP地址的列表。

例如:

10.2.214.1 UP   
10.2.214.2 UP   
10.2.214.3 UP   
10.2.214.4 DOWN 

它非常简单,可以节省您的时间。


1
与生气的IP扫描程序相比,这实际上是很慢的,因为它一次只能扫描一次。除非使用了大多数IP范围,否则您都必须等待几分钟,这种方法才能为您提供答案。
乔恩·凯奇

2

Angry IP Scanner很棒,但我更喜欢CLI工具。查看是否可以在Vista中运行此Powershell脚本。https://github.com/webstersprodigy/PowerSploit/blob/Portscan/Recon/Invoke-Portscan.ps1

我还建议通过在VirtualBox中使用linux live cd / usb,双重引导或vm来访问Linux CLI。(安装VirtualBox,添加一个新的vm,安装Debian。)linux CLI是无价的。

从Linux CLI,运行以下命令:

基于PING的扫描

for ip in 172.10.1.{1..254}; do ping -c 1 -w 1 $ip > /dev/null && echo $ip "$(nslookup $ip | grep 'name = ' | awk -F ' = ' '{print $2}')"; done

调整您的网络范围(“ 172.10.1”部分),您就下班了。这将提供网络上所有响应ICMP回显(ping)请求的主机的列表,并根据您的DNS服务器对其进行解析。

注意:这不是测试活动主机的最可靠方法,因为它们可能阻止了ICMP。

基于Nmap的扫描

nmap -sP 192.168.1.0/24

注意:Nmap更可靠,因为它是端口扫描程序,其结果不仅基于ICMP响应,而且还基于活动。渗透测试者经常使用它,值得学习。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.