ICMP Echoの送受信(Net::Ping)

Net::PingはTCP,UDP,ICMPを利用したネットワークの疎通チェックを行えます。 デフォルト状態では、Net::PingはTCPを利用します。 UNIXにおける一般的なpingコマンドと同様にICMPを利用したNet::Pingを使うにはnew("icmp")とする必要があります。

Net::Pingサンプル

以下に単純なサンプルを示します。


#!/usr/bin/perl

use Net::Ping;

# 確認する機器の名前もしくはIPアドレス
$dest = "localhost";

$p = Net::Ping->new("icmp");

# pingを実行
$result = $p->ping($dest);

# 結果の確認
if ($result) {
  print "$dest is alive\n";
} else {
  print "error\n";
}

# 終了する
$p->close();

exit;

上記スクリプトを実行するにはroot権限が必要です。 これは、ICMPを送信するためのraw socketがroot権限を必要とするためです。

Net::Pingには、RTTを計測できる機能もあります。


あきみち

「インターネットのカタチ - もろさが織り成す粘り強い世界 -」関連資料

インターネットのカタチ もろさが織り成す粘り強い世界

Linuxネットワークプログラミング

Perlネットワークプログラミング

カスタム検索


アルファブロガー・アワード2011受賞ブログ


外部サイト

プレコ王国
ディスカス魂
金魚タイムズ
YouTubeチャネル
Twitter
Facebook
mixi(ほぼ未使用)

フィードメーター - Geekなぺーじ
Copyright (C) Geekなページ.
All rights reserved. 無断転載や無断コピーなど、私的利用の範囲を逸脱した利用はおやめ下さい.