| Module | Ping |
| In: |
lib/ping.rb
|
require 'ping'
puts "'jimmy' is alive and kicking" if Ping.pingecho('jimmy', 10)
This module 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 rsh(1), ftp(1), or telnet(1) to.
pingecho() may block for a long period if name resolution is slow. Require 'resolv-replace' to use non-blocking name resolution.
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.
# File lib/ping.rb, line 33
33: def pingecho(host, timeout=5, service="echo")
34: begin
35: timeout(timeout) do
36: s = TCPSocket.new(host, service)
37: s.close
38: end
39: rescue Errno::ECONNREFUSED
40: return true
41: rescue Timeout::Error, StandardError
42: return false
43: end
44: return true
45: end