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();