Extended maintenance of Ruby versions 1.8.7 and 1.9.2 ended on July 31, 2014. Read more
Ping contains routines to test for the reachability of remote hosts. Currently the only routine implemented is pingecho().
::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: ::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.
Example:
require 'ping' Ping.pingecho "google.com", 10, 80
# File ping.rb, line 44
def pingecho(host, timeout=5, service="echo")
begin
timeout(timeout) do
s = TCPSocket.new(host, service)
s.close
end
rescue Errno::ECONNREFUSED
return true
rescue Timeout::Error, StandardError
return false
end
return true
end