やりたいこと
かんたんお手軽にどこのアクセスポイントに繋がっていて、どれくらいの強さで繋がっているか確認したい。
調査
netsh コマンド使えば目的の結果が得られることがわかりました。
netsh wlan show interface の実行結果
システムに 1 インターフェイスがあります:
名前 : Wi-Fi
説明 : Intel(R) Wi-Fi 6 AX201 160MHz
GUID : a1b2c3d4-5678-90ab-cdef-1234567890ab
物理アドレス : aa:bb:cc:11:22:33
インターフェイス 入力 : プライマリ
状態 : 接続されました
SSID : Sample-no-ssid
BSSID : dd:ee:ff:44:55:66
ネットワークの種類 : インフラストラクチャ
無線の種類 : 802.11ax
認証 : WPA2-パーソナル
暗号 : CCMP
接続モード : 自動接続
バンド : 5 GHz
チャネル : 60
受信速度 (Mbps) : 310
送信速度 (Mbps) : 574
シグナル : 90%
プロファイル : Sample-no-ssid
ホストされたネットワークの状態: 利用不可
思考
この中で欲しいのは 「BSSID」 と 「シグナル」 です。
これを 「findstr」 で取り出し、 「for 文」 で変数にいれて、 「SET」 を使って置換して、 「echo」 で表示させて、 「TIMEOUT」 で数秒ごとに更新して、 「goto」 で回して…
出来上がり
電波強度確認君.bat
@echo off
:LOOP
for /f "usebackq delims=" %%A in (`netsh wlan show interface ^| findstr BSSID`) do set BSSID=%%A
SET BSSID=%BSSID:dd:ee:ff:44:55:66=1階東事務所%
SET BSSID=%BSSID:dd:ee:ff:55:66:77=1階西事務所%
SET BSSID=%BSSID:dd:ee:ff:66:77:88=2階事務所%
SET BSSID=%BSSID:dd:ee:ff:77:88:99=3階大会議室%
SET BSSID=%BSSID:dd:ee:ff:88:99:11=倉庫%
SET BSSID=%BSSID:dd:ee:ff:99:11:22=受付%
for /f "usebackq delims=" %%B in (`netsh wlan show interface ^| findstr シグナル`) do set SIGNAL=%%B
echo %BSSID%
echo %SIGNAL%
TIMEOUT /t 5
goto LOOP
結果
BSSID : 受付
シグナル : 87%
0 秒待っています。続行するには何かキーを押してください ...
BSSID : 受付
シグナル : 32%
0 秒待っています。続行するには何かキーを押してください ...
BSSID : 1階東事務所
シグナル : 96%
5 秒待っています。続行するには何かキーを押してください ...
「受付」から「1階東事務所」に移動して、AP が切り替わった事がわかります。
このバッチがあればどこまで電波を掴むのか、扉を締めたらどう変化するのかいろいろなことがバッチりわかります。
これは生成AIなどがまだない頃に自力で作った会心の作となります。
キモは BSSID を場所に変換しているところです。
みなさん是非とも使ってみて下さい。
そして感想など頂ければ嬉しいです。