MacでWi-Fiネットワーク・AP情報をターミナルで表示する方法

通常MacではmacOSにデフォルトで存在するワイヤレス診断アプリでWi-Fiネットワークやアクセスポイントのスキャンを行ったり、あるいはシステム環境設定のネットワーク設定でWi-Fiに関する情報を取得できるが、これらをターミナルで行う方法を紹介。

ちなみにワイヤレス診断アプリでスキャンを行うにはSpotlightなどで「ワイヤレス診断」と入力してワイヤレス診断アプリを起動してメニューバーの「ウィンドウ」から「スキャン」を実行しよう。

なお、Macのワイヤレス診断アプリはスニファ(暗号化されていないWi-Fiアクセスポイントのパケットキャプチャ)の機能を備えるものの、盗聴・傍受行為に当たるため本記事では扱わない(暗号化されていない通信の盗聴・傍受だけでは日本国内では違法ではないが良識と照らし合わせて方法は記さない)。

AirPortツールへのシンボリックリンクを作る

まず下記コマンドを実行してAirPortツールへのシンボリックリンクを作っておこう。

sudo ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/local/bin/airport

パスワードの入力を求められたら管理者パスワードを入力してエンターキーを押そう。

この作業を行うことでターミナルにAirPortツールへのフルパスを入力する手間が省ける。

ターミナルのWi-Fi関連コマンド

近くのWi-Fiアクセスポイントをスキャン

ターミナルで下記コマンドを実行するとWi-Fiアクセスポイントをスキャン出来る。

airport -s

スキャンが終了すると近くにあるWi-FiアクセスポイントのSSIDやRSSI(信号強度であり0に近いほど信号が強い)、チャンネル、CC(Country Code)、セキュリティ情報などが表示される。

管理人は陸の孤島のような極端な田舎在住のため非常にWi-Fiアクセスポイントが少ないが(上記4つのAPの内2つは僕だ)、都市部であれば多数のWi-Fiアクセスポイントが表示されるはず。

ただし、WPA3で保護されているWi-Fiアクセスポイントは「WPA2」と表示され、このコマンドでは暗号化プロトコルの正確な情報を取得できない(ワイヤレス診断アプリではWPA3と表示されている)。

現在接続しているWi-Fiアクセスポイントの詳細を表示

下記コマンドで現在そのMacが接続しているWi-Fiアクセスポイントの詳細を表示する。

airport -I

先程のコマンドと違ってこのコマンドでは「link auth」の項目が「wpa3-sae」となっており、正常にWPA3で保護されたアクセスポイントの情報を取得できている。

WPA3対応ルーターを導入したがちゃんと通信がWPA3で保護されているのか確認したいという場合にも使える。

なお、WPA3で通信を保護するためにはWPA3対応ルーターで暗号化プロトコルをWPA3に設定する必要があるが、PS4などの世代が古いゲーム機などはWPA3に対応しておらず無線だと接続できなくなるので注意しよう。

PS4 Pro does not support WPA3 at this time.

 Orbi 852 Wireless Smart Connect with PS4 Pro

Wi-Fi全般情報を表示

下記コマンドで現在のWi-Fiの状態を確認できる。

networksetup -getinfo Wi-Fi

プライベートIPアドレスやIPv6の情報なども確認可能だ。

ネットワークハードウェア情報を表示

下記コマンドでネットワークハードウェア情報(デバイス名やMACアドレスなど)を確認できる。

networksetup -listallhardwareports

上記画像の「Wi-Fi」の項目の「Device: en1(デバイス名)」という部分は後述のコマンド実行の際に必要なので覚えておこう。

管理人のMac mini 2018はイーサネットポートを備えるためWi-Fiのデバイス名が「en1」になってしまっているが、iMacやMac mini以外であれば大抵の場合「en0」のはず。

現在接続しているSSID名を表示

下記コマンドで現在接続しているSSIDを表示できる。

networksetup -getairportnetwork en1

「en1」の部分に先程確認したデバイス名を入力しよう。

「Current Wi-Fi Network」の欄に現在接続しているSSIDが表示されるはずだ。

まとめ

単にWi-Fiアクセスポイントをスキャンしたり情報を表示するだけならばワイヤレス診断アプリやシステム環境設定の方が情報量が多く手軽かもしれないが、僕はターミナルをほぼ常時起動しているため特にWi-Fiアクセスポイントを手軽にスキャンできる「airport -s」というコマンドは重宝している。

また、本記事では扱わなかったが特別なソフトウェアを用いずともMacにデフォルトで存在するワイヤレス診断アプリ・ターミナルで暗号化されていないWi-Fiアクセスポイントのパケットをキャプチャ出来るため、本記事がセキュリティの重要性に対する理解の向上に役立つことを願う。