Raspberry Pi をモニターレスで利用している時、SSHで接続したくてもIPアドレスが分からなくて困ることがあります。
固定IP化していればIPアドレスが変わることはありませんが、通常はIPアドレスは変わります。
また、インストール時にホスト名を設定していれば、IPアドレスではなく「ホスト名.local」でも繋がります。しかし、それを設定していないとなると分からなくなることがあります。
Macのターミナルで、arp-scanを使いLAN内のIPアドレスを表示させる方法がありますのでご紹介します。
インストール
Mac OSXにはarp-scanは入っていません。これを先ずはインストールします。
brew install arp-scan
調べるコマンドとオプション
arpコマンドで簡単に知るには以下のコマンドでOKです。
arp -a
これだとLAN内にある機器が出てきてしまい、Raspberry Pi だけとは限りません。
そこで検索して表示してみましょう。(フィルタリングかな)
arp -a | grep b8
arp -aの後にある|(パイプ)はSHIFTキーを押しながら¥マークで打てます。
これは次のコマンドと繋ぐと言う意味です。「〜とパイプがある」と日本語でも言いますね。
次のgrepは検索するという意味で使うコマンドです。
b8というのは、Raspberry Pi のMACアドレスはすべて「b8:27〜」で始まるため、それを抽出したいからです。

このようにb8から始まるRaspberry Pi が5台あることが分かりました。
(ただ、これだと恐らくキャッシュが効いていて、実際には電源が入っていないRaspberry Pi も検出されたりするようです。実際の台数と異なる場合、arpコマンドを実行するマシンを再起動してみると分かります)
使い方としては、Raspberry Pi の電源を入れる前に一度arpコマンドを実行し、Raspberry Pi が起動後にもう一度実行すると、1つ増えているのが分かるため特定できます。
arp-scanの場合
もう一つ、arpにはarp-scanがあります。
これは管理者権限で実行します。
sudo arp-scan -l --interface en0
こんな感じで表示されます。

※もしも表示されなければ、en0のインターフェイス種類はifconfigで調べてください。
こちらはベンダー名も出るので分かりやすいです。
当然ながらb8で絞り込んでRaspberry Pi だけ表示させられます。
sudo arp-scan -l --interface en0 | grep b8
まとめ
私自身、arpコマンドはよく使います。
常時設置しているRaspberry Pi については、固定IPを設定しますが、とりあえず使う場合はそこまで設定しません。それにモニターを繋がずに利用することが多いからです。
できれば、セットアップ時にホスト名くらいは付けて置けば、次からは非常に楽になります。
sudo raspi-config
ホスト名を設定(例:hogehoge)
ssh pi@hogehoge.local
ホスト名を忘れてしまっては意味はありませんが・・・。
arpは何度も使ってみて覚えてください。
コメント