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を計測できる機能もあります。

IPv6基礎検定

YouTubeチャンネルやってます!