Net::Ping

諸々のプロトコルで pingを実行する
icmp pingであれば Net::Ping::Externalを使った方が簡単

use Net::Ping;
パッケージをロードする

ICMP ping
newメソッドでプロトコル"external"を指定する。この場合、Net::Ping::Externalが使われる。Net::Ping::Externalがインストールされていないとエラーになる。プロトコル"icmp"もサポートされているが、これはルート権限がないと実行できない。


my $icmp = Net::Ping->new("external");
$icmp->bind("my ip address");
my $rc = $icmp->ping("remote host name");
print "icmp = $rc\n";
$icmp->close();

TCP ping
newメソッドでプロトコル"tcp"を指定する。プロトコル"syn"もサポートされているが、tcp synのみを送信してすぐに戻るので、ackメソッドで tcp ackを受信待ちしなければならない。


my $tcp = Net::Ping->new("tcp");
$tcp->port_number(80);
my $rc = $tcp->ping("remote host name");
print "tcp:80 = $rc\n";
$tcp->close();