“我的网站是否已关闭?”如何

时间:2010-11-04 22:20:28

标签: ruby web

创建“我的网站是否已关闭?”的最佳方式是什么?在Ruby?我该怎么做才能使用HTTP和Ping来检查它?

感谢。

2 个答案:

答案 0 :(得分:3)

基本上只需使用一个http库来查看你是否可以获得(实际上,HEADing会更好)他们指向的页面。如果您收到响应,则服务器已启动,否则(它没有响应或超时)它已关闭,您会相应地提醒用户。

这不是最干净的方式,但基本上是:

require 'net/http'
require 'uri'

def isUp( url )
    uri = URI.parse( url )

    begin
        Timeout::timeout(5) {
            Net::HTTP.start( uri.host, uri.port ) { |http|
                 http.head( uri.path )
            }
        }
    rescue Timeout::Error
        return false
    end

    return true 
end

你可能会让它不等待超时,和/或增加超时以避免超时以避免误报,但这只是一个简单的例子。

答案 1 :(得分:2)

(作弊)

require 'uri'
require 'open-uri'
site = "http://stackoverflow.com/"
open("http://downforeveryoneorjustme.com/#{URI.parse(site).host}"){|f|f.read}["It's not just you!"]