ルーターの再起動などで、動的に割り当てられていたIPアドレスが変更されたことによってデバイスを見失ったときの、ローカルネットワーク内のデバイスの探索方法メモ
方法としては、ARP(Address Resolution Protocol)テーブルを閲覧して、ローカルネットワークに存在するIPアドレスの一覧を表示することで探索します。
Windows:arpによるローカルIPアドレス探索
arpコマンドによってローカルIPアドレスの一覧が取得できます。
コマンド:
arp -a
インターフェイス: 192.168.1.1 --- 0xf
インターネット アドレス 物理アドレス 種類
192.168.1.1 xx-xx-xx-xx-xx-xx 動的
255.255.255.255 xx-xx-xx-xx-xx-xx 静的
インターフェイス: 172.12.170.25 --- 0xff
インターネット アドレス 物理アドレス 種類
172.12.170.25 xx-xx-xx-xx-xx-xx 動的
239.255.255.250 xx-xx-xx-xx-xx-xx 静的
ここでデバイスのIPアドレスが見つかれば終了です。見つからない場合は次の手順に進みます。
arpコマンドで見つからない場合
直近でアクセスのあったIPアドレスしかARPテーブルには保存されていないらしく、上の方法でテーブル上を探しても見つからない場合があるらしいです。
そのような場合、forループを用いてアドレスに片っ端からpingを飛ばしてアクセスした履歴(ARPキャッシュ)を残し、arpコマンドで発見できるようにする。
コマンド:
for /L %i in (1,1,254) do ping -n 1 192.168.1.%i
ここでは「192.168.1.%i」を仮定して%iの箇所をFORループで値を変えながらpingによって疎通を確認しています。
コマンド:
arp -a
pingがある程度終わったら、もう一度arpコマンドを実行することで先ほどまで見えなかったデバイスのIPアドレスも見えるようになります。
Linux:ipによるローカルIPアドレス探索
Linux環境でも同様に困ったとき用にメモ
コマンド:
for i in {1..254}; do ping -c 1 192.168.1.$i & done
Windows環境のaptコマンドの代わりに、「ip」コマンドの近傍キャッシュエントリを表示するオプションの「neigh」を用います。
コマンド:
ip neigh
「sudo apt install net-tools」を行うと、Windows環境と同じようにaptコマンドを使用できます。
コマンド:
arp -a
以上、
面倒がらずに固定IPに設定すればいいのでしょうね