Perl verifica a conexão com a Internet por 30 segundos se estiver estável, não estável e sem conexão com a Internet

Perl verifica a conexão com a Internet por 30 segundos se estiver estável, não estável e sem conexão com a Internet

Quero um script em perl que possa verificar se minha internet está estável, não estável ou sem conexão com a internet.

eu usoRede::Pingscript, mas a resposta é " You are connected to the internet.", não verificando a conexão com a Internet em 30 segundos se estiver estável, não estável ou sem conexão com a Internet. Basta responder " You are connected to the internet.". Mas a verdade é que minha conexão com a internet está instável. A cada 3 segundos, conecte - desconecte.

Este é o roteiro

$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();

Quero usar wgetcomo meu testador, mas não sei como fazer o script em perl. Meu projeto está escrito em perl.

Responder1

Seu script parece bem perto de funcionar. Aqui está o que acabei depois de alguns ajustes:

#!/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();

Notas:

  • O ping icmp requer privilégios de root e pode ser bloqueado pelo Google ou por alguém intermediário algum dia, então fique com o ping tcp. Ninguém vai bloquear isso.
  • use stricte use warningssão bons hábitos Perl para se ter
  • você precisa do usemódulo

informação relacionada