« フォルダリダイレクトに必要なNTFSアクセス権 | メイン | Wake up on LAN の実験 »

2004年02月21日

Perl の Net::Ping モジュール

ping といえばネットワーク的に繋がっているかどうかを確かめるための定番ツールだが、Net::Ping モジュールはそれと同様の機能をもつ Perl のモジュールである。

例えば、 192.168.0.1 に ping を飛ばして返事があれば、何かの処理をする例はこんな感じ。
use Net::Ping;
$host="192.168.0.1";
$timeout=0.1;
$p = Net::Ping->new("icmp");
if $p->ping($host, $timeout){
	print "$host is alive.\n";
}
$p->close();


もうちょっと複雑にしてみる。次は
192.168.0.11 から 192.168.0.40 の範囲に ping を飛ばしてから arp コマンドによって mac address を取得するスクリプト。
use Net::Ping;
$timeout=0.1;
$p = Net::Ping->new("icmp");
@host=map("192.168.0.$_", 11..41);
for $host (@host){
    $p->ping($host, $timeout);
}
$p->close();
open(CMD, "arp -a|") or die "cannot exec arp";
print grep($_!~/invalid/, <CMD>);
close(CMD);

投稿者 augustus : 2004年02月21日 12:05

トラックバック

このエントリーのトラックバックURL:
http://www.augustus.to/cgi-bin/blog/mt-tb.cgi/53

このリストは、次のエントリーを参照しています: Perl の Net::Ping モジュール:

» Perl で、URL の自動リンクをしたい from Perl Tips
以前私は正規表現を使っていたが、 URI::Find とそれにピッタリのモジュ... [続きを読む]

トラックバック時刻: 2006年05月17日 08:45

コメント

コメントしてください




保存しますか?