モニターを繋いでいないラズパイのIP Addressをパソコンから知る方法
Contents
IP Address
モニターに接続していない状態のRaspberryPiのIP Addressを知る方法についての備忘録。
そもそもどの様な状況の時に上記の事が必要なのかと言うと、
- ラズパイはDHCPからIP Addressが動的に決定されている(どのIP Addressが割り当てられたか分からない)
- ラズパイの電源ONでネットワークに接続した直後
- ラズパイには別端末(Windowsパソコン)からsshやVNCで接続しようとしている
- 手元にラズパイ用のモニターやキーボードが無い
上記の様な時にラズパイにモニターとキーボード(マウス)を接続して LXTerminal から ifconfig コマンドを打てばラズパイの IP Address が分かるので ssh や VNC で接続する事はできるのだが、手元にモニターが無いと動的に決定された IP Address がわからない。
また一度でも Windowsパソコンとラズパイが通信をしていれば arp コマンドで一覧が表示されるのだがラズパイをネットワークに接続した直後だと arp -a でもラズパイが表示されないので IP Address がわからない。
arpコマンド
ARPは Address Resolution Protocol の略でIP AddressとMACアドレスを関連付けたテーブルを管理している。
標準で最大2分間情報が保持されて、
arp -a
コマンドで接続機器の一覧が表示される。
ただし同一ネットワーク上のみで有効でルーターを越えた先にある端末を表示することは出来ない。
環境
尚、当方の環境は以下の通り。
OS | Windows10 Home バージョン1903 |
本体 | DELL G7 15 7588 |
CPU | CoreTM i7-8750H |
ラズパイを探す
一度でもパソコンとラズパイが通信をすれば良いのでちょっと時間が掛かるが以下のコマンドで片っ端からpingを打つ。
%i の部分が 0 から順番に 255 まで 1 ずつインクリメント(加算)されて ping コマンドが実行される。
for /l %i in (0,1,255) do ping -w 1 -n 1 192.168.1.%i
192.168.1 の部分はネットワーク環境によって変える必要がある。
自分は自宅のプライベートネットワークなので192.168.1を指定した。
pingによりarpテーブルにIP AddressとMACアドレスの登録されるので、
arp -a
コマンドで一覧を表示する。
追加されたラズパイを判断する方法としては事前にarpコマンドを打っておいて差分を比較しても良いが、
- ラズパイ3はb8-27でMACアドレスが始まる
- ラズパイ4はdc-a6でMACアドレスが始まる機器もある
のでMACアドレスから見分ける方法もある。
一連のコマンドをbatファイルにしてfindrasppi.batファイルとして保存した。
for /l %%i in (0,1,255) do ping -w 1 -n 1 192.168.1.%%i
arp -a |find "b8-27"
arp -a |find "dc-a6"
補足説明
batファイル内なので変数(%i)に%を追加している。
findコマンドはlinuxでのgrepに相当するコマンド。
正規表現を使えるfindstrもあるのだが使える正規表現が限られており、文字列のor条件が指定出来ない様なのでfindコマンドをラズパイ3と4を探すために2行に分けている。
尚、batファイルはProgram Files (x86)¥zipフォルダーに保存して環境変数にpathを指定した。
pathの指定方法については以前の記事を参照して欲しい。
実行結果
自宅での実行結果は以下の通り。
ラズパイは2台接続しているので2行表示された。
以上で今回の記事は終了とする。
この記事が何処かで誰かの役に立つことを願っている。
尚、当記事中の商品へのリンクはAmazonアソシエイトへのリンクが含まれています。Amazonのアソシエイトとして、当メディアは適格販売により収入を得ていますのでご了承ください。
最近のコメント