Extended maintenance of Ruby versions 1.8.7 and 1.9.2 ended on July 31, 2014. Read more

In Files

  • ping.rb


Class/Module Index [+]



Ping 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 telnet, ftp, or ssh to.

Warning: ::pingecho may block for a long time if DNS resolution is slow. Requiring ‘resolv-replace’ allows non-blocking name resolution.


require 'ping'

puts "'jimmy' is alive and kicking" if Ping.pingecho('jimmy', 10)

Public Class Methods

pingecho(host, timeout=5, service="echo") click to toggle source

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.


require 'ping'

Ping.pingecho "google.com", 10, 80
               # File ping.rb, line 44
def pingecho(host, timeout=5, service="echo")
    timeout(timeout) do
      s = TCPSocket.new(host, service)
  rescue Errno::ECONNREFUSED
    return true
  rescue Timeout::Error, StandardError
    return false
  return true

Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.

If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.

If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.

If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.