Ruby Railsシステム呼び出しPingの使用
RoRでシステムコマンドを呼び出したいのですが、一般的にexecとsystemとsyscall
Railsでpingコマンドを呼び出すには
最も一般的なのはrubyがサポートするPingの使い方です.
しかしrubyが持参したpingはavg max minなどのパラメータを返すことができないだけでなく、pingの効果もシステムpingと大きく異なるので、以下の2つを使用します.
上の戻り値はtrueとflaseです
だから、下の
Railsでpingコマンドを呼び出すには
最も一般的なのはrubyがサポートするPingの使い方です.
Ping contains routines to test for the reachability of remote hosts. Currently the only routine implemented is pingecho().
Ping.pingecho uses a TCP echo (not an ICMP echo) to determine if the remote host is reachable. This is usually adequate to tell that a remote host is available to telnet, ftp, or ssh to.
Warning: Ping.pingecho may block for a long time if DNS resolution is slow. Requiring ‘resolv-replace’ allows non-blocking name resolution.
Usage:
require 'ping'
puts "'jimmy' is alive and kicking" if Ping.pingecho('jimmy', 10)
Return true if we can open a connection to the hostname or IP address host on port service (which defaults to the "echo" port) waiting up to timeout seconds.
Ping.pingecho('192.168.1.27',timeout=50,service='echo')
Example:
require 'ping'
Ping.pingecho "google.com", 10, 80
しかしrubyが持参したpingはavg max minなどのパラメータを返すことができないだけでなく、pingの効果もシステムpingと大きく異なるので、以下の2つを使用します.
system("ping 192.168.1.25 -c 2")
上の戻り値はtrueとflaseです
だから、下の
@sum=`ping #{@ana[:ip]} -c #{@count}`
@[email protected](/(\.|\d|\/)+\//).split('/')