MacでWifiを利用する際、外出先での利用や自作のプログラム中からWifiのネットワークを設定する場合など、コマンドラインから設定を確認できた方が便利な場合があります。
この記事ではMacにインストールされているWifi関連コマンドを、その最低限の使い方に絞って解説したいと思います。
なお、この記事は、以前買いた記事を読みやすく加筆修正したものです。 MacでのWi-Fi周りの設定コマンドを調べたのでメモっとく - 気になったことを調べた記録
Wifi接続状況の表示・設定
Wifiの利用状況(On/Off)や利用中のSSIDは、networksetup
コマンドを利用すれば確認・設定ができます。オプションなどを何も指定せず、単にnetworksetup
とタイプすると、サブコマンドの一覧と役割が表示されます。
このコマンドを用いて各種設定の確認などをする際は、基本的にnetworksetup サブコマンド デバイス名 [サブコマンドに依存する引数]
という文法になります。
なお、上記のデバイス名とは、ネットワークインターフェース名です。
私のMac Book Airではen0
がWi-fiのネットワークデバイス名だったため、この記事では全てこれで統一していますが、マシンによっては異なるかもしれません。
これは、ネットワークユーティリティ(Network Utility.app)から調べることができます。(コマンドラインから確認する方法は後述します)
WifiのON/OFFの表示
WiFiが繋がっているかどうかは下記のようにサブコマンドとして-getairportpower
を渡せば確認することができます。
$> networksetup -getairportpower en0 Wi-Fi Power (en0): On # 結果
WifiのON/OFFの切り替え
WiFiのON/OFFの切り替えは、サブコマンドに-setairportpower
を指定することで設定ができます。使用例は下記のようになります。
$> networksetup -setairportpower en0 off
もしくは
$> networksetup -setairportpower en0 on
現在利用中のSSIDの表示
現在繋いでいるネットワーク名の取得は、-getairportnetwork
をサブコマンドとして渡すことで調べることができます。
$> networksetup -getairportnetwork en0 Current Wi-Fi Network: Buffalo-A-3A48
接続に用いるSSIDの指定
SSIDの指定は、-setairportnetwork
をサブコマンドとし、デバイス名、ネットワーク名、パスワードを渡せば設定することができます。
networksetup -setairportnetwork en0 Buffalo-A-3A48 XxXxX(←WEPなどで暗号化されている場合のパスワード)
設定済みのSSIDの表示
すでにプロファイルが設定されているSSIDに関しては、-listpreferredwirelessnetworks
をサブコマンドとすることで確認可能です。
これは、利用優先順位の順に表示されます。内容は、システム環境設定→ネットワーク設定の詳細→Wi-Fiタブの中の情報と同一です。
$> networksetup -listpreferredwirelessnetworks en0 Preferred networks on en0: ... (省略)
デバイス名の調べ方
上記で、デバイス名はネットワークユーティリティで調べられると書きましたが、これはnetworksetupコマンドに-listallhardwareports
をサブコマンドとして渡しても表示できます。
$> networksetup -listallhardwareports Hardware Port: Wi-Fi Device: en0 ... (以下省略)
使用可能なSSID一覧の表示
現在いる場所で利用可能なSSID(Wifiネットワーク名)の一覧を調べる際は、airport
コマンドを利用します。
このコマンドは、下記に示すパスのように非常に深い場所にあり、そのままではコマンド検索パスに含まれていません。
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport
まずはこれをエイリアス登録するなり、シンボリックリンクをコマンド検索パス内に作成するなどして呼び出しを簡単にするのが良いと思います。
$> alias "airport=/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport"
このコマンドを-s
オプションをつけて呼び出すと、利用可能なwifiの一覧を表示してくれます。
$> airport -s SSID BSSID RSSI CHANNEL HT CC SECURITY (auth/unicast/group) ... (以下は一覧:省略)