Мне нужен скрипт на 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
модулю