4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MacでWiFi通信が切れたときに通信デバイスを自動で再起動するやつ

Last updated at Posted at 2018-06-08

#目的

私のMacだと、喫茶店等の公衆WiFiを使っていると通信ができなくなることが多々ある。
アクセスポイントには接続していてIPも払い出されているのに、通信だけできないのだ。
WiFiデバイスをOff→Onすれば直る。
自宅だとWiFiが切れたことはないので、おそらくアクセスポイント側の問題だと思うが調査のしようがない。
頻繁に起こり手動でOff→Onしてたらイライラしてきたので、自動でやってくれるスクリプト書いた。

自動スクリプト

WiFiアクセスポインント(デフォルトゲートウェイ)にpingを一定間隔でうって、返答なければWiFiデバイスを再起動するだけのもの。

#!/bin/bash

# WiFi nic
DEVICE='en0'
# ネットワーク確認の応答待ち時間(秒)
TIMEOUT=1
# ネットワーク確認の間隔(秒)
INTERVAL=10
# デフォルトゲートウェイIP
IP_ADDR=$(netstat -rn | grep UGS | awk '{ print $2 }')

while :
do 
	# alive monitoring wi-fi default getway
	ping -c 1 -t $TIMEOUT $IP_ADDR >/dev/null 2>&1

	# network interface restart
	if [ $? -ne 0 ]; then
		NOW=$(date "+[%Y/%m/%d %H:%M:%S]")
		echo $NOW "network disconnected"
		/usr/sbin/networksetup -setairportpower $DEVICE off
		/usr/sbin/networksetup -setairportpower $DEVICE on
	fi

	sleep $INTERVAL

done
4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?