Aterm WR8166Nの自動再起動

IPv4の外部公開用に設置した Aterm WR8166N というルーターが、ときどきストールしてしまって、IPv4で接続できなくなることが何度か発生しました。

そのたびに電源Off→Onしていたのですが、いいかげんめんどくさくなったので、自動再起動のスクリプトを作りました。

再起動画面はフレームになっているので、「再起動」ボタンあたりで、右クリック>フレームのソースを表示 でフォームを見てみます。

<form action=/boafrm/formReboot method=POST name="reboot_form">
<!-- NMR1222-20151203-Patch NEC solution to fix bug 1222 [Linear][Alvia] CSRF vulnerability was found -->
<input type="hidden" value="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" name="SESSION_ID">
	<tr>
		<td ><font size=2><input type="submit" value="再起動 " name="reboot" onclick="return rebootClick(this)"></td>
	</tr>
	<tr>
		<td colspan="2"><hr size=1 noshade align=top></td>
	</tr>
</form>

URLは http://192.168.10.100/reboot.htm でした。

ということで、http://192.168.10.100/boafrm/formReboot に SESSION_ID と reboot リクエストパラメータをPOSTすればOKということで、以下のシェルを作ります。

#!/bin/sh
SESSION_ID=$(curl -s -u user:password http://192.168.10.100/reboot.htm | perl -ne 'print "$1" if (/<input .*value="([^"]*)" name="SESSION_ID"/);')

curl -s -u user:password --data "SESSION_ID=${SESSION_ID}&reboot=%BA%C6%B5%AF%C6%B0+" http://192.168.10.100/boafrm/formReboot > /dev/null

echo "Now rebooted Aterm WR8166N"

「user:password」はBASIC認証のIDとパスワードです。

crontab に以下を書いて、週一で再起動となります。

2 4 * * 3 $HOME/reboot_router.sh

これでストールが収まりますように!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です