Raspberry Piをモニターを接続しないで運用しているのですが、たまにローカルIPが変更になってSSHで接続できなくなることがあります
Macの場合はこの方法で調べることができます
方法1 アプリケーションを使う
方法2 ターミナルを使って調べる
方法1 アプリケーションを使う
Macだと「LanScan」というアプリを使えば一発です。Windowsにも同じようなアプリがあると思うので探してみてください
「Lan your Scan」ボタンを押せば、ローカルネットワーク内の機器がずらずらっと表示されます
方法2 ターミナルを使って調べる
Macでアプリを追加できない・・・という場合はこちらで
参考にしたのはこちら
Raspberry Pi • View topic – FYI: via Raspi’s IP address with ‘arp-scan’
Raspberry PiのMACアドレスは「b8:27:eb」から始まるので、それを元に調べます
そのためにARPコマンドを使います。ARPというのはAddress Resolution Protocol(アドレス解決プロトコル)。IPアドレスから物理層のネットワーク・アドレス(MACアドレス)を求めるために利用されるプロトコルです。MACアドレスというのはハードウェアに固定で割り振られている物理アドレス。パソコンのMacとは関係ありません
MACアドレスの一部がわかっているので、そこから該当するIPアドレスを見つけます
STEP1 ブロードキャストアドレスを調べる
まず、自分のパソコンのローカルIPアドレスを調べます
環境設定の「ネットーワーク」から調べることができます。Wi-Fi接続なら、メニューバーにあるWi-Fiアイコンをoptionキーを押しながらクリックするとIPアドレスが表示されます
僕のMacのローカルIPは10.0.1.4でした
この自分のIPの最後の数字を255にしたのがブロードキャストアドレス
なので、10.0.1.255がブロードキャストアドレスです
STEP2 ブロードキャストアドレスに応答確認
ブロードキャストアドレスにpingコマンドを送信します
ブロードキャストアドレスにpingすれば、同じネットワークに接続している機器全て応答確認が送られますが、セキュリティの観点から、ブロードキャストアドレスへのpingに応答しないOSもあるようです
ping 10.0.1.255
ずらずらっと文字が表示されるので、同じようなIPが何度も出てくるなーと思ったら、Ctrl+Cで終わらせます
STEP3 arpコマンドで調べる
Macではarp-scanコマンドが使えなかったので、arpコマンドを使った方法で調べました。「arp -a」コマンドを実行すると現在のARPテーブルの内容が表示されるので、その中で「b8:27:eb」が含まれる行だけ抜き出します
arp -a | grep "b8:27:eb"
レスポンスはこんな感じです。Raspberry PiのローカルIPは10.0.1.6ですね
? (10.0.1.6) at b8:27:eb:**:**:** on en0 ifscope [ethernet]
これで解決です