モニター接続なしで起動したRaspberryPiのIPアドレスを確認する方法

使い始めた最初の頃を過ぎてしまうとRaspberryPiは基本モニター接続をせずに使用することが多いかなと思います。基本的にはSSHVNCリモートデスクトップ接続を行うことが多いのだと思います。また、かなり前からmDNSがデフォルトで起動していることもあり、LAN内に1台のRaspberryPiが起動している状態であればraspberrypi.localというホスト名でアクセスすることもでき、DHCPで割り振ら得たであろうIPアドレスなどを知ることなく、アクセスすることも容易になってきています。

そんな環境ではあるのですが、ごくたまに起動したRaspberryPiIPアドレスが知りたいということもあります。こういう時は体外にトラブル発生しているときが多いのですが…。今回の内容はそんなときのものになります。

使わない人はたぶん全く使わない内容だと思います。

LAN内にあるRaspberryPiのIPアドレスを調べる

RaspberryPiMACアドレスは一定なのでb8-27から始まるものになっています。そこで、OSで管理しているIPアドレスMACアドレスの管理テーブルを参照するコマンドarpを使用して、該当のMACアドレスのついたIPアドレスを検索できればRaspberryPiIPアドレスもわかります。

※RaspberryPi4では"dc-a6"から始まるMACアドレスのものもあるようです。

Windowsであれば、cmdPowerShellに以下のようなコマンドを入力することで検索することができます。

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"

バッチファイルの実行画面

f:id:ueponx:20211130004457p:plain

おわりに

今回は最近ちょっとトラブルが多かったので、メモというレベルの内容となりました。 ヘッドレスの環境でトラブルがあった場合にはたまに使う機会もあるかもしれません。

ちなみにRaspberryPi3以降でないとWiFi機能が装備されていません。そのためRaspberryPi2などではこの情報をそのままは使えないので注意です。(これで結構時間を無駄にしたこともありましたw)

/* -----codeの行番号----- */