RaspberryPiにsshなどで他のPCから接続する場合にIPアドレスが必要だ。しかし、DHCPを利用している場合にはIPアドレスが起動する度に変わってしまう。この記事ではraspberry piでipアドレスを取得する方法をいくつか紹介する。RaspberryPiをインストールするとき、MACアドレスを調べてメモしておくと役に立つ。
方法0 ディスプレイやキーボードがある場合
ip a
コマンドを実行する。
方法1 raspberrypi.local
mDNSを使って解決する。Windowsの場合はiTunesをLinuxの場合はavahiをインストールすればmDNSが使える。raspberrypi.localにpingしてみてIPアドレスを確認できれば、mDNSが使用できている。この方法は複数のRaspberryPiを識別することができない。
方法2 MACアドレス
arpコマンドを使用すると、ipアドレスとMACアドレスの対応であるarpテーブル参照することができる。これを利用しIPアドレスを調べる方法もある。RaspberryPiの有線ポートのMACアドレスは次の形式になっている。
B8:27:EB:XX:XX:XX (XXは任意の16進数)
このMACアドレスはアメリカ合衆国Raspberry Pi Foundationが取得したもので、同団体の製品であることを示している。このMACアドレスとIPアドレスの関係を調べることで、RaspberryPiのIPアドレスを特定できる。
Linux
Linuxでは、下のスクリプトでIPアドレスを調べることができる。192.168.0.0/24の場合、192.168.0.1-192.168.0.254にpingする。ping -b 192.168.0.255でも動作しそうなものだが、標準設定では、ブロードキャストに応答しないようだ。なお、192.168.0.0/24の場合、192.168.0.0はネットワークアドレス、192.168.0.255はブロードキャストアドレスになるので通常使用できない。
# /bin/bash
echo "scan start"
for i in {1..254} ; do
(ping -c 1 192.168.0.$i >/dev/null &)
done
sleep 2
arp -na | grep "at b8:27:eb" --color=auto
実行例
user@ubuntu:~$ sudo arp -d 192.168.0.107
user@ubuntu:~$ . scan.sh
scan start
? (192.168.0.107) at b8:27:eb:xx:xx:xx [ether] on enp1s0
RaspberryPiのIPアドレスが192.168.0.107であることがわかる。
Windows
windowsでは、次のコマンドプロンプトより下コマンドを実行すると、
arpテーブルが出力されるのでb8-27-eb:を探す。
for /l %i in (1,1,254) do @start /b ping -n1 192.168.0.%i > nul
arp -a
実行例
c:\Windows\system32>for /l %i in (1,1,254) do @start /b ping -n1 192.168.0.%i > nul
c:\Windows\system32>
c:\Windows\system32>arp -a
インターフェイス: 192.168.0.100 --- 0xb
インターネット アドレス 物理アドレス 種類
192.168.0.107 b8-27-eb-xx-xx-xx 動的
まとめ
方法0が使えない場合、raspberrypi.localが使えるのであれば、方法1で確認するのが早い。無理なら方法2を使おう。rapsbianがブロードキャストに応答しない点に注意する。