有没有快速ping多个设备的方法?

0 投票
1 回答
1158 浏览
提问于 2025-04-18 02:42

你好,我正在写一个脚本,用来检查网络上是否有特定的人连接。这个脚本通过获取设备的MAC地址来实现,数据来源于ARP。我现在大约完成了0.5%,但遇到了一个问题。目前我需要对所有的IP地址进行ping测试,范围是192.168.1.2到192.168.1.254。这样做非常慢,有没有更快的方法呢?

代码:

inport os
ipcount=2
ipup=[]

while ipcount<254:
 response=os.system("ping -c 1 192.168.1." + str(ipcount))
 if response == 0:
   ipup.append("192.168.1."+str(ipcount))
 ipcount=ipcount+1

1 个回答

1

在很多线程中同时进行Ping操作。大部分时间都在等待回应,所以使用多个线程可以大大加快这个过程。你可能想提前创建线程,甚至重复使用它们,因为创建线程的速度比较慢。

补充:

还有一种方法是使用异步网络输入输出(async network IO)来实现Ping。

撰写回答