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)

Methods

pingecho  

Public 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

[Source]

    # 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

[Validate]