0
我需要同時ping多個ip地址。我知道可以做得很好的程序(colasoft),但是,我需要將結果提供給我的ruby腳本。我在想多個命令提示是唯一的方法,但我希望遠離這一點。 還有其他一些方法可以ping多個地址,分別得到他們的結果,這種'方式'必須能夠被ruby腳本初始化和分析。同時ping多個不同的ip地址
我需要同時ping多個ip地址。我知道可以做得很好的程序(colasoft),但是,我需要將結果提供給我的ruby腳本。我在想多個命令提示是唯一的方法,但我希望遠離這一點。 還有其他一些方法可以ping多個地址,分別得到他們的結果,這種'方式'必須能夠被ruby腳本初始化和分析。同時ping多個不同的ip地址
我會做這樣的事情:
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
正是我期待的輸出!非常感謝 – Schylar 2014-10-07 23:55:03
你將不得不使用多線程來做到這一點,這是我想多'cmd'實例。此外,擁有多個ping會降低網絡速度,導致讀數不準確 – TameHog 2014-10-07 23:15:57
請查看http://askubuntu.com/q/413367。但是,你應該能夠通過搜索找到它。 – 2014-10-07 23:36:40