利用するパラメータは1個だけ

 arpコマンドは,ARPキャッシュの情報を操作するコマンドである。ARPキャッシュに登録されている情報の一部を削除したり,新規に登録したりできる。

 ただ実際には,ARPキャッシュの内容を表示するときくらいしか,利用する場面はない。ここでも,ARPキャッシュの内容を表示する用途でarpコマンドを使う。それにはコマンド・プロンプトを開いて,-aオプション・パラメータを付けて

arp -a

図2 arpコマンドを実行すると,IPアドレスとMACアドレスの対応表が表示される
コマンド・プロンプトで「arp -a」と実行すると,機器に割り当てられているIPアドレスに対応するMACアドレスが表示される。
[画像のクリックで拡大表示]

図3 LAN内の全端末のリストを作る
本連載の第1回(2005年4月号)で紹介したpingの連続実行コマンドと組み合わせてarpコマンドを使うことで,LAN上で稼働中の機器のIPアドレスとMACアドレスの対応表が作成できる。
[画像のクリックで拡大表示]
と実行する(図2[拡大表示](1))。すると,IPアドレスとMACアドレスの対応表が表示される。これがARPキャッシュの内容である。

 実行結果では,「Internet Address」と書かれた列がIPアドレスで,それに対応するMACアドレスは同じ行の「Physical Address」と書かれた列に表示される。

 なおarpコマンドには,ほかにも-dや-sといったオプション・パラメータが用意されている。-sがARPキャッシュへの情報登録,-dが削除である。詳しい使い方は,「arp」とだけ実行するとヘルプが表示されるので,そちらを参考にしよう(図2(2))。

前回のコマンドと組み合わせる

 では,今回の目標であるLAN内で稼働中の機器のIPアドレスとMACアドレスの対応表を作る作業手順を見ていこう。

 とは言っても,実行するコマンドは二つだけである。最初にforコマンドを使って,LAN内の機器が使っているIPアドレスに対して順番にpingコマンドを実行する(図3[拡大表示](1))。これは,前回で解説したコマンドそのものである。前回では,実行結果をファイルに記録するバッチ・ファイルを作成するところまでやったので,前回作ったバッチ・ファイルが残っている人は,そのバッチ・ファイルを実行すればよい。

 図3(1)のコマンドでは,IPアドレスが192.168.0.1~192.168.0.254までの機器へ順番にpingコマンドを送信しようとする。その過程では,ARPを使ったアドレス解決の作業が行われる。対象機器が稼働中ならば,ARP応答パケットが返ってきて,その機器のMACアドレスをARPキャッシュに記録する処理である。

 ちなみに対象機器が存在しない場合は,ARP要求パケットに対するARP応答パケットが返ってこない。このとき,パソコンはARPキャッシュに情報を登録せず,pingパケットも送信しない。そして,pingコマンドの実行結果として「Request timed out.」というメッセージを表示する。

 この結果,図3(1)のコマンドを実行し終わったときには,LAN内で稼働している機器だけのIPアドレスとMACアドレスの対応表が,ARPキャッシュに記録されているはずである。

 そこでコマンド実行後,ARPキャッシュの内容を表示するためのコマンドを実行する。具体的には,先ほど紹介したように「arp -a」と実行するだけだ(図3(2))。これで,対応表がコマンド・プロンプト画面に表示される。