On 6/7/07, W0rtex Indigo <indigo7333 / gmail.com> wrote: > require 'socket' > require 'timeout' > def ping( host, service = "echo",timeout = 2) > begin > timeout( timeout ){ > TCPSocket.open( host, service){} > } > rescue Errno::ECONNREFUSED > true > rescue false > else true > end > end > p ping(ARGV[0] || "google.ru") > > When host is down i got error:" ping:10:in `ping': class or module > required for rescue clause (TypeError) from ping:14" > when host is alive i've got true > Can you help me please! It's complaining about rescue false Maybe something like: def ping( host, service = "echo",timeout = 2) begin timeout( timeout ){ TCPSocket.open( host, service){} } rescue Exception => ex # handle any expected exceptions case ex when Errno::ECONNREFUSED return false when Timeout::Error return false else # pass the buck raise ex end end true end Doing a ping by connecting is rather heavyweight though. -- Rick DeNatale My blog on Ruby http://talklikeaduck.denhaven2.com/