読者です 読者をやめる 読者になる 読者になる

たまに書きます。

気になって調べたことを書いていきます。まずはAboutページをご覧ください。

MacでのWi-Fi周りの設定コマンドを調べたのでメモっとく

家の無線だと基本的には自動でつないでくれるから良いんだけど、外で無線つなぐときに使うWi-Fiネットワークを使用可能一覧から選ぶ事がよくあって、起動後にマウスカーソルを画面の右上に持って行って一覧から選んで・・・ってのが面倒くさいのでなんとかならないかなと思ってた。
ふと気になってググったらやっぱりあった。うまくやればこれからその辺りの一連の動作はコマンドラインでうまくやれるようになる。

というわけで参考URLは以下。

使用可能なネットワーク一覧の表示: http://osxdaily.com/2012/02/28/find-scan-wireless-networks-from-the-command-line-in-mac-os-x/

過去に設定済みのWi-Fiネットワーク一覧の表示: http://osxdaily.com/2013/01/03/get-list-preferred-wifi-networks-command-line/

Wi-Fiネットワークを選択して接続する: http://osxdaily.com/2011/04/12/connect-wireless-network-command-line/

一応日本語でちょっとだけ引っ張ってくる。
1、使用可能なSSID一覧の表示。
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s

なんぞと言う超絶深い所にあるコマンドで使用可能ネットワークの一覧が見られる。
とりあえず/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airportをシンボリックリンクで検索パスの中におくなり、alias登録するなりしよう。
オプションなしで実行すると使い方がでてきて、

$> alias "airport=/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport"
$> airport
Usage: airport <interface> <verb> <options>

	<interface>
	If an interface is not specified, airport will use the first AirPort interface on the system.

・・・省略

LEGACY COMMANDS:
Supported arguments:
 -c[<arg>] --channel=[<arg>]    Set arbitrary channel on the card
 -z        --disassociate       Disassociate from any network
 -I        --getinfo            Print current wireless status, e.g. signal info, BSSID, port type etc.
 -s[<arg>] --scan=[<arg>]       Perform a wireless broadcast scan.
				   Will perform a directed scan if the optional <arg> is provided
 -x        --xml                Print info as XML
 -P        --psk                Create PSK from specified pass phrase and SSID.
				   The following additional arguments must be specified with this command:
                                  --password=<arg>  Specify a WPA password
                                  --ssid=<arg>      Specify SSID when creating a PSK
 -h        --help               Show this help

$>

まあ使うのは-sくらいかなぁ。スキャンしてくれて使えるSSID一覧を表示してくれる。

2、現在つないでるネットワーク名の表示、或は接続するネットワーク名の指定
これはnetworksetupコマンドをつかう。
まず、つないでるネットワーク名の取得には、

$> networksetup -getairportnetwork en0

逆に、ネットワークを指定するときは、

$> networksetup -setairportnetwork en0 ネットワーク名 [WEPとかで暗号化されているときはそのキー]

という感じで良いみたい。
ちなみに、en0ってここで書いていたのは、僕の使っているMacBook Airの場合はそれでいけたけど、もしかしたら機種によって違うのかもしれない。

$> networksetup -listallhardwareports

Hardware Port: Bluetooth DUN
Device: Bluetooth-Modem
Ethernet Address: N/A

Hardware Port: Wi-Fi
Device: en0
Ethernet Address: 7c:d1:c3:e2:6a:8d

Hardware Port: Bluetooth PAN
Device: en1
Ethernet Address: N/A

VLAN Configurations
===================

みたいにして調べられるみたい。

3、設定済みのネットワーク一覧の表示

networksetup -listpreferredwirelessnetworks en0
Preferred networks on en0:
	Hogehoge
。。。省略

みたいに、2でつかったのと同じデバイス名を渡す事で、プロファイルを設定済みのネットワーク一覧が表示される。

途中から早足だったけど、とりあえずnetworksetupはmanがあるので、それで調べられる。まぁググった方が速いね。
実際コマンドで指定するのは接続するネットワークの指定くらいだから、そのコマンドラインをaliasにするなりしておくだけで十分快適になりそう。