そのサーバーからのインターネット接続があるかどうかを定期的に (数秒ごとに) 検証する単純なスクリプトがあります。明確にするために、外部サイト/サービス/サーバーが稼働しているかどうかを確認するつもりはありません。信頼できるインターネットの宛先として、Google、Yahoo などのサイトの IP を使用します。通常、3 つの宛先 (LAN、ISP ネットワーク、外部 ISP) を使用します。
これを担当する私の現在のコードは、次の単純で汚い呼び出しping
です。
my $pingResponse = `ping -c 1 -w 1 123.123.123.123`;
my $isConnected = parsePingResponse($pingResponse);
うまくいくようですが、このタスクを達成するための正しい/最良の方法ではないと確信しています。少なくとも 3 つの欠点があります。外部システム コール、遅い、デッドラインが 1 秒と比較的長い。
だから、私の質問は次のとおりです。インターネット接続が生きているかどうかを確認するために 、単純かつ効率的にping機能をperlishの方法で実装する方法は?
(LWP はやり過ぎだと思います。サイトやページが利用可能かどうかは重要ではありません。いくつかの外部 IP に到達できるかどうかだけです。おそらく、低レベルのネットワークを含む単純なものにする必要があります)