同时ping多个不同的IP地址

时间:2014-10-07 23:13:19

标签: ruby windows command-line command-prompt

我需要同时ping多个IP地址。我知道可以做得很好的程序(colaso​​ft),但是,我需要将结果提供给我的ruby脚本。我想多个命令提示是唯一的方法,但我希望远离那个。 有多少其他方法可以ping多个地址,分别取回结果,这种'方式'必须能够通过ruby脚本进行初始化和分析。

1 个答案:

答案 0 :(得分: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