« フォルダリダイレクトに必要な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