Perl проверяет интернет-соединение в течение 30 секунд, если оно стабильное, нестабильное или отсутствует

Perl проверяет интернет-соединение в течение 30 секунд, если оно стабильное, нестабильное или отсутствует

Мне нужен скрипт на Perl, который может проверять, стабилен ли мой интернет, нестабилен ли он или отсутствует вообще.

я используюСеть::Пингскрипт, но ответ " You are connected to the internet.", не проверяя интернет-соединение в течение 30 секунд, если стабильное, не стабильное или отсутствует интернет-соединение. Просто ответьте " You are connected to the internet.". Но правда в том, что у меня интернет-соединение нестабильное. Каждые 3 секунды подключение - отключение.

Это сценарий.

$ping = Net::Ping->new("icmp");
$ping->port_number("80");
if ( $ping->ping( 'www.google.com', '10' ) ) {
    print "You are connected to the internet.\n";
}
else {
    print "You are not connected to the internet.\n";
}
$ping->close();

Я хочу использовать его wgetв качестве тестера, но не знаю, как писать скрипты на perl. Мой проект написан на perl.

решение1

Ваш скрипт кажется довольно близким к рабочему. Вот что у меня получилось после небольшой доработки:

#!/usr/bin/perl

use warnings;
use strict;
use Net::Ping;

my $ping = Net::Ping->new("tcp");
$ping->port_number("80");
if ( $ping->ping( 'www.google.com', '10' ) ) {
    print "You are connected to the internet.\n";
} else {
    print "You are not connected to the internet.\n";
}
$ping->close();

Примечания:

  • icmp ping требует прав root и может быть заблокирован Google или кем-то еще, так что используйте tcp ping. Никто не собирается его блокировать.
  • use strictи use warningsявляются хорошими привычками в Perl, которые стоит иметь
  • вам нужно к useмодулю

Связанный контент