Perl prüft die Internetverbindung 30 Sekunden lang, ob sie stabil, nicht stabil und keine Internetverbindung ist

Perl prüft die Internetverbindung 30 Sekunden lang, ob sie stabil, nicht stabil und keine Internetverbindung ist

Ich möchte ein Skript in Perl, das überprüfen kann, ob mein Internet stabil ist, nicht stabil ist oder ob keine Internetverbindung besteht.

ich benutzeNetz::PingSkript, aber die Antwort ist " You are connected to the internet.", prüft die Internetverbindung nicht innerhalb von 30 Sekunden, ob sie stabil, nicht stabil oder keine Internetverbindung besteht. Antworten Sie einfach mit " You are connected to the internet.". Aber die Wahrheit ist, meine Internetverbindung ist instabil. Alle 3 Sekunden verbinden – trennen.

Dies ist das Skript

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

Ich möchte es als meinen Tester verwenden wget, weiß aber nicht, wie ich es in Perl skripten kann. Mein Projekt ist in Perl geschrieben.

Antwort1

Ihr Skript scheint fast zu funktionieren. Nach ein paar kleinen Anpassungen kam ich zu folgendem Ergebnis:

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

Anmerkungen:

  • ICMP-Ping erfordert Root-Rechte und könnte eines Tages von Google oder sonst jemandem blockiert werden, also bleiben Sie beim TCP-Ping. Das wird niemand blockieren.
  • use strictund use warningssind gute Perl-Gewohnheiten
  • Sie müssen usedas Modul

verwandte Informationen