有没有快速ping多个设备的方法?
你好,我正在写一个脚本,用来检查网络上是否有特定的人连接。这个脚本通过获取设备的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。