Я хочу иметь возможность опросить веб-сайт и посмотреть, если он онлайн. Я хотел бы, чтобы он возвращал логическое значение, но я не могу найти способ сделать это. Спасибо.
Поскольку @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
Зависит от того, что вы подразумеваете под «онлайн», а также, если пинг не отключен.
system('ping hostname')
Вы также получаете доступ ко всем отзывам встроенных системных инструментов.