諸事情で、WindowsのPCを使わざるをえない状況だったので・・・。簡易な感じで。
> for /l %i in (1,1,254) do ping -w 50 -n 1 192.168.1.%i && arp -a 192.168.1.%i >> ping.log
↑を実行すると、192.168.1.1 〜 192.168.1.254に対して連続してping(ICMP echo)を実行して、ログファイルに結果(応答があったノード)を書き込みます。タイムアウトは念のため50msecにしました。LAN内だったら、もっと小さくても良いと思います。
(対象IPアドレスは"dynamic"とか"動的"とか書かれている行になります。←でgrepしてやるとIPアドレスの一覧が取れます。ちなみに余談ですが、arpの実行結果なので、MACアドレスも記録されます。)
# Windowsのコマンドプロンプトなんて普段使わねー。。。
追記: Linux編も書きました
さらに追記
ブロードキャストアドレスにpingを・・・というコメントを頂きましたが、ブロードキャストパケットを拒否するノードに対応できなかったので、↑のようにしています。そこを考慮しなくて良い場合は、そちらの方がシンプルで良いと思います!(ま、コピペして実行だと思うので、変わらないとは思いますが。)
Windowsコマンドプロンプトスパテク242 Vista/XP/2000対応
- 作者:飯島 弘文
- 出版社/メーカー: 翔泳社
- 発売日: 2008/03/14
- メディア: 単行本(ソフトカバー)