OSX (10.11.6) で BSSID を指定して接続する
別な帯域だが同じ SSID で wifi が飛んでいるという場面に遭遇し、選択して接続する方法に困ったが解決したのでまとめておく。
まず BSSID を取得する
Linux の iwconfig
のようなものは MacOSX では airport
が提供されている。場所は以下にあるので Path を通すなりしておく。
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport
airport-bssid を導入する
現在 airport
では BSSID を指定することができないので、公開されている airport-bssid というものを利用する。Path の通った場所に実行ファイルをコピーしている。
$ git clone https://github.com/qpSHiNqp/airport-bssid.git $ cp airport-bssid/Build/airport-bssid /path/to/bin
実行
まず BSSID と channel の情報を取得する。
$ airport scan ...(略)
channel については airportのissue で指定しておくと動いたというケースがあったので、もし動かない場合は対処できるかもしれない。channel が 11 だとすると以下のように指定できる。
$ sudo airport -c11
Ethrenet の port も確認しておく。
$ networksetup -listallhardwareports Hardware Port: Wi-Fi Device: en0 ...(略)
最後に以下で接続する。EthernetPort
, BSSID
, password
はそれぞれ相応しいものに置き変える。EthernetPort
は自分の環境の場合は上で取得した en0
, BSSID
は接続したいwifi の BSSID,password
はその接続したい wifi
のパスワードを示す。
$ airport-bssid EthernetPort BSSID password ... Associated to network "入力したSSID" (BSSID: 入力した BSSID)
となれば成功しているはず。以下で現在接続している wifi を確認できる。
$ airport -I