Проверить статус сервера в ruby, используя доменное имя? - PullRequest
2 голосов
/ 11 января 2011

Я хочу иметь возможность опросить веб-сайт и посмотреть, если он онлайн. Я хотел бы, чтобы он возвращал логическое значение, но я не могу найти способ сделать это. Спасибо.

Ответы [ 2 ]

2 голосов
/ 11 января 2011

Поскольку @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 голосов
/ 11 января 2011

Зависит от того, что вы подразумеваете под «онлайн», а также, если пинг не отключен.

system('ping hostname')

Вы также получаете доступ ко всем отзывам встроенных системных инструментов.

...