のらりくらり

物理化学分野のポスドクです。プログラミング、読書、自転車などが好きです。

MacのWifi周りのコマンドの紹介

MacWifiを利用する際、外出先での利用や自作のプログラム中からWifiのネットワークを設定する場合など、コマンドラインから設定を確認できた方が便利な場合があります。

この記事ではMacにインストールされているWifi関連コマンドを、その最低限の使い方に絞って解説したいと思います。

なお、この記事は、以前買いた記事を読みやすく加筆修正したものです。 MacでのWi-Fi周りの設定コマンドを調べたのでメモっとく - 気になったことを調べた記録

Wifi接続状況の表示・設定

Wifiの利用状況(On/Off)や利用中のSSIDは、networksetupコマンドを利用すれば確認・設定ができます。オプションなどを何も指定せず、単にnetworksetupとタイプすると、サブコマンドの一覧と役割が表示されます。

このコマンドを用いて各種設定の確認などをする際は、基本的にnetworksetup サブコマンド デバイス名 [サブコマンドに依存する引数]という文法になります。

なお、上記のデバイス名とは、ネットワークインターフェース名です。 私のMac Book Airではen0Wi-fiのネットワークデバイス名だったため、この記事では全てこれで統一していますが、マシンによっては異なるかもしれません。 これは、ネットワークユーティリティ(Network Utility.app)から調べることができます。(コマンドラインから確認する方法は後述します)

f:id:salondunord:20190818162624p:plain
ネットワークデバイス名の表示

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)
                 ... (以下は一覧:省略)