使い始めた最初の頃を過ぎてしまうとRaspberryPiは基本モニター接続をせずに使用することが多いかなと思います。基本的にはSSHやVNC、リモートデスクトップ接続を行うことが多いのだと思います。また、かなり前からmDNSがデフォルトで起動していることもあり、LAN内に1台のRaspberryPiが起動している状態であればraspberrypi.localというホスト名でアクセスすることもでき、DHCPで割り振ら得たであろうIPアドレスなどを知ることなく、アクセスすることも容易になってきています。
そんな環境ではあるのですが、ごくたまに起動したRaspberryPiのIPアドレスが知りたいということもあります。こういう時は体外にトラブル発生しているときが多いのですが…。今回の内容はそんなときのものになります。
使わない人はたぶん全く使わない内容だと思います。
LAN内にあるRaspberryPiのIPアドレスを調べる
RaspberryPiのMACアドレスは一定なのでb8-27から始まるものになっています。そこで、OSで管理しているIPアドレスとMACアドレスの管理テーブルを参照するコマンドarpを使用して、該当のMACアドレスのついたIPアドレスを検索できればRaspberryPiのIPアドレスもわかります。
※RaspberryPi4では"dc-a6"から始まるMACアドレスのものもあるようです。
Windowsであれば、cmdやPowerShellに以下のようなコマンドを入力することで検索することができます。
cmd
> arp -a | findstr "b8-27" > arp -a | findstr "dc-a6"
OSの起動状況によっては時間がかかることもあります。
そんなときには一旦ネットワーク内のすべてのデバイスにpingでパケットを送信することでarpテープルの更新を行うことができます。
以下のコマンドの192.168.0.%1は検索するLANのネットワークになるので、適宜変更します(%1の部分はforによる変動値)。
batファイルに書く記述
for /l %i in (0,1,255) do ping -w 1 -n 1 192.168.0.%i
RaspberryPiのIPアドレスを探すバッチファイル
for /l %%i in (0,1,255) do ping -w 1 -n 1 192.168.0.%%i arp -a | findstr "b8-27" arp -a | findstr "dc-a6"
バッチファイルの実行画面

おわりに
今回は最近ちょっとトラブルが多かったので、メモというレベルの内容となりました。 ヘッドレスの環境でトラブルがあった場合にはたまに使う機会もあるかもしれません。
ちなみにRaspberryPi3以降でないとWiFi機能が装備されていません。そのためRaspberryPi2などではこの情報をそのままは使えないので注意です。(これで結構時間を無駄にしたこともありましたw)