Самый простой способ определить, удален ли удаленный сервер, попытаться подключиться к нему. Использование LWP
отправить head
запрос (вместо get
) получает только информацию заголовка HTTP без содержания, и вы должны получить быстрый ответ от любого сервера, который находится на линии
по умолчанию таймаут LWP::UserAgent
объекта по три минуты, поэтому для быстрого теста вам нужно будет установить что-то гораздо более короткое
Эта программа временно устанавливает тайм-аут на 0,5 секунды, отправляет запрос главы и сообщает, что сервер не отвечает, если результатом является ошибка любого Сортировать. Исходное значение тайм-аута восстанавливается до проведения на
В зависимости от реального сервера, который вы хотите проверить, вам необходимо тщательно настроить тайм-аут, чтобы избежать ложных негативов
use strict;
use warnings 'all';
use constant URL => 'http://www.google.com/';
use LWP;
my $ua = LWP::UserAgent->new;
{
my $to = $ua->timeout(0.5);
my $res = $ua->head(URL);
unless ($res->is_success) {
die sprintf "%s is not responding (%s)\n", URL, $res->status_line;
}
$ua->timeout($to);
}
Не могли бы вы название операционной системы или Linux Распространение, которое вы используете? «Элегантные» методы AFAIK в основном «не переносятся». – AnFi
Google не любит автоматически сканироваться, поэтому вы не можете получать полезные результаты, если только google.com не является местом для реального домена. – Sebastian
* «проверьте статус в Интернете» * Вы хотите проверить, подключена ли ваша собственная система интернет-подключения, или находится ли он в сети или что-то еще? – Borodin