【问题标题】:Ping multiple different ip addresses at the same time同时ping多个不同的ip地址
【发布时间】:2014-10-07 23:13:19
【问题描述】:

我需要同时 ping 多个 IP 地址。我知道可以很好地做到这一点的程序(colaso​​ft),但是,我需要将结果提供给我的 ruby​​ 脚本。我认为多个命令提示符是唯一的方法,但我希望远离它。 还有哪些其他方法可以 ping 多个地址,分别返回结果,并且这种“方法”必须能够通过 ruby​​ 脚本进行初始化和分析。

【问题讨论】:

  • 您必须使用多个线程来执行此操作,我猜这是多个 cmd 实例。此外,多次 ping 会减慢网络速度,从而导致读数不准确
  • askubuntu.com/q/413367。但是,您应该可以通过搜索找到它。

标签: ruby windows command-line command-prompt


【解决方案1】:

我会这样做:

ips = ['8.8.8.8', '127.0.0.1']

threads = ips.map do |ip|
  Thread.new { Thread.current[:result] = `ping -q -c 1 #{ip}` }
end

threads.each do |thread|
  thread.join
  puts "#{thread[:result]} \n\n"
end

示例输出:

PING 8.8.8.8 (8.8.8.8): 56 data bytes

--- 8.8.8.8 ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 28.667/28.667/28.667/0.000 ms


PING 127.0.0.1 (127.0.0.1): 56 data bytes

--- 127.0.0.1 ping statistics ---
1 packets transmitted, 0 packets received, 100.0% packet loss

【讨论】:

  • 正是我正在寻找的输出!非常感谢
猜你喜欢
  • 1970-01-01
  • 2013-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-19
  • 1970-01-01
相关资源
最近更新 更多