Module: Ping
- Defined in:
- lib/ping.rb
Overview
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)
Instance Method Summary collapse
-
#pingecho(host, timeout = 5, service = "echo")) ⇒ Object
Return true if we can open a connection to the hostname or IP address
host
on portservice
(which defaults to the "echo" port) waiting up totimeout
seconds.
Instance Method Details
#pingecho(host, timeout = 5, service = "echo")) ⇒ Object
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
44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/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 |