| Module | Ping |
| In: |
lib/ping.rb
|
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.
Example:
require 'ping' Ping.pingecho "google.com", 10, 80
# File lib/ping.rb, line 44
44: def pingecho(host, timeout=5, service="echo")
45: begin
46: timeout(timeout) do
47: s = TCPSocket.new(host, service)
48: s.close
49: end
50: rescue Errno::ECONNREFUSED
51: return true
52: rescue Timeout::Error, StandardError
53: return false
54: end
55: return true
56: end