ホストの生存確認(Net::Ping)
ここでは、Net::Pingを使ってネットワークの向こうにある機器が動作中かどうかを確認する方法を説明したいと思います。
Net::Pingサンプル
以下に単純なサンプルを示します。
#!/usr/bin/perl
use Net::Ping;
# 確認する機器の名前もしくはIPアドレス
$dest = "localhost";
$p = Net::Ping->new();
# pingを実行
$result = $p->ping($dest);
# 結果の確認
if ($result) {
print "$dest is alive\n";
} else {
print "error\n";
}
# 終了する
$p->close();
exit;
上記サンプルは、Net::Pingを使って簡単に確認をする方法です。 上記方式では、疎通確認にTCPが利用されます。
Net::Pingには、TCPだけではなく、UDPやICMPを利用した疎通確認機能があります。 また、RTTを計測できる機能もあります。
ICMPを利用したNet::Ping利用にはroot権限が必要なのでご注意下さい。 root権限は、ICMP送受信のためにRAWソケットを開くためです。