SSH
bat
RaspberryPi
IPアドレス
Windows10

Windows10からraspberry piのIPアドレスを調べてSSHするbat

Windowsからraspberry piをsshするときに地味にめんどくさいのがIPを調べることだとおもいます。

静的IPで固定してしまうのが確実ですが、
ここでは簡易にローカルネットワークの機器にpingを送り、
ARPにキャッシュされたMACアドレスからraspberry piを推測してsshするbatを書いてみました。

SSHですが、今回はWindows10に公式のOpenSSHが追加されていたのでそちらを使います。
すべての設定 > アプリ > オプション機能の管理 > 機能の追加 から
OpenSSH Client (Beta)を追加して、ログインしなおします。

image.png
これでコマンドプロンプトからsshできるようになります。scpも使えますよ。
(OpenSSHが気に入らない場合はPuttyなりにパスを通せばいいと思います。)

raspberry_pi_ssh.bat
@echo off
set YOUR_NETWORK=192.168.0
set TARGET_MAC_ADDR="b8-27-eb"

echo %YOUR_NETWORK%.xを検索中
for /l %%i in (0,1,254) do ping -n 1 -l 1 -w 1 %YOUR_NETWORK%.%%i > nul
for /f "tokens=1" %%i in ('arp -a ^| find /i %TARGET_MAC_ADDR%') do ssh pi@%%i

変数YOUR_NETWORKはお使いのローカルエリアに合わせてください。0~254の範囲にpingを送り、
ARPにキャッシュされたMACアドレス一覧からraspberry piのベンダIDのb8-27-ebを探して、
見つけた最初のMACアドレスのIPにユーザーpiとしてsshします。
(ローカルネットに複数raspberry piがあるときは固有のMACアドレスで検索すれば任意のpiが見つかります)

image.png