僕はスタバやタリーズによく滞在してMacを開いているんですが、
なぜか突然レスポンスが帰ってこなくなり接続できなくなる時があります。
ブラウザで認証用のページにリダイレクトされることもなく、ただstuckしてしまう現象です。
もちろん電波強度は悪いわけではありません。
こういうときは経験上、メニューバーのWi-Fiメニューからwifiをオフにしてonにすると治ります。
ただ毎回手動でやっていると面倒なので、terminalでコマンドで解決できるようにしました。
こんなfunctionを作る
これを.bashrcあたりに追記します。
# ssidを取得するコマンド
alias ssid=$'/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | awk \'/ SSID/ {print substr($0, index($0, $2))}\''
wifireset ()
{
ssid=$(ssid)
networksetup -setairportpower en0 off
echo 'Re-enabling Wi-Fi...'
networksetup -setairportpower en0 on
echo "Reconnecting ${ssid}..."
networksetup -setairportnetwork en0 "$ssid"
echo 'Done.'
}
詳細な説明は省きます。使っているコマンドはどれもMac固有のものです。以下でヘルプを見てください。
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport --help
networksetup -help
en0
の部分はネットワークインターフェース名なので、環境によって異なると思います。ifconfig
でそれっぽいinterface名を探して書き換えてください。
使用例
$ wifireset
Re-enabling Wi-Fi...
Reconnecting tullys_Wi-Fi...
Done.
課題
そもそもこのwifiの切れる原因となぜ接続し直すと治るのかがわかっていません。ゲートウェイのセッション数が限界に達した?? いろんなwifi飛びすぎていて物理層で干渉した?? Macがチャネルの変更に追従できなくなった??