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 にはルート権限が必要で、いつか Google やその中間の誰かによってブロックされる可能性があるので、tcp ping を使い続けてください。誰もそれをブロックしません。
  • use strictそして、use warningsPerlの良い習慣である
  • useモジュールが必要です

関連情報