module 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)
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)
Public Class Methods
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/knj/autoload/backups/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
Private Instance Methods
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/knj/autoload/backups/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