2011-01-11 74 views

回答

0

变化你的意思是“在线”,并且如果ping未被禁用。

system('ping hostname') 

您还可以访问所有内置的系统工具反馈。

2

由于@JacobRelkin猛拉他的回答,我会后它。请注意,您必须将协议包含在域名中。

require 'net/http' 
require 'uri' 

def website_online?(site_url) 
    begin 
     url = URI.parse(site_url) 
     res = Net::HTTP.start(url.host, url.port) {|http| 
     http.get('/') 
     } 
     res.body.length > 0 
    rescue 
     false 
    end 
end 

p website_online?('phrogz.net') 
#=> false 

p website_online?('http://phrogz.net') 
#=> true 
+0

嘿!我一直在用irb测试我的答案,并且得到了一些奇怪的结果,所以我抽了它。 – 2011-01-11 19:53:36