Parallel processing 如何每秒同时对数千个IP地址进行icmp ping?

Parallel processing 如何每秒同时对数千个IP地址进行icmp ping?,parallel-processing,ping,icmp,simultaneous,Parallel Processing,Ping,Icmp,Simultaneous,我正在寻找解决方案,如何能够在本地网络上每1秒ping 5000到10000个IP地址,当任何icmp数据包超时时,它将输出写入一个文件,其中包含丢失数据包的unix历元时间和IP地址。因此,我可以测量每个IP地址的网络中断时间(以秒为单位) 我现在正试图在一个无限周期内为每个IP地址运行这么多ping命令,所以我有很多正在运行的进程——对于所有IP地址,我只发送一个数据包。在ping命令自行完成之后,我管理其输出并再次运行ping命令,等等。但我觉得这不是最好的方法:| 我可以在BASH和PH

我正在寻找解决方案,如何能够在本地网络上每1秒ping 5000到10000个IP地址,当任何icmp数据包超时时,它将输出写入一个文件,其中包含丢失数据包的unix历元时间和IP地址。因此,我可以测量每个IP地址的网络中断时间(以秒为单位)

我现在正试图在一个无限周期内为每个IP地址运行这么多ping命令,所以我有很多正在运行的进程——对于所有IP地址,我只发送一个数据包。在ping命令自行完成之后,我管理其输出并再次运行ping命令,等等。但我觉得这不是最好的方法:|

<>我可以在BASH和PHP中编写脚本,但不能在C++中编写脚本…因此,如果您能为我的技能提供解决方案,我更愿意:

先谢谢你。 佩普


PS:我想我知道fping是如何工作的,我觉得它太慢了。它不能每秒ping 5000个IP地址,对吗?

我想这个软件包可以帮助你

在一条线上运行两个ping。很简单。通过添加标记来添加更多内容。

可以做到这一点

下面的示例在不到一秒钟的时间内轮询8192个地址,等待一秒钟,然后再次轮询。轮询之间任何主机状态的任何更改都将被写入

aping -rate 10000 -show delta -sleep 1 10.0.0.0/19

整天每秒ping 5000-10000台机器会让你的网络管理员对你恨之入骨。你真的确定要这样做,还是需要这样做?Im管理员和整个本地主干网的所有者,所以这不是一个问题。但是,是的,几千个od IP地址是我们的客户,我想他们不介意每秒ping一次。从我的角度来说,这是一个很大的尝试,但我有非常详细的统计数据,如果它能工作的话,主干是如何工作的。如果我发现一秒钟的ping太多了,我仍然可以使用两秒钟,这仍然很好。问题是如何并行运行数千次ping。您的方法以串联方式运行它们,也就是说,一个接一个地运行。如果平均往返时间为50毫秒,运行5000将花费250秒,超过4分钟,OP希望每秒都这样做。考虑到检测超时正是所有这一切的目的,这甚至不包括某些ping可能超时并花费更长的时间,这一点必须加以考虑。
aping -rate 10000 -show delta -sleep 1 10.0.0.0/19