あなたの天然記念物
ホーム更新雑談Perl鉄ゲタランドナーコースガイド自転車Linuxリンク経歴連絡先

ルータ回線切断スクリプト (2015.04.23)

背景

ADSLは接続しているのになぜかネットの接続ができない場合、ルータの設定画面で回線切断を繰り返すと接続できるようになる知見が得られました。 この手間がかかる方法をスクリプトにやらせてしまおうという訳です。

環境

概要

ユーザー認証の初期設定後、ルータの設定画面を開き、回線切断ボタンをクリック、以降、2秒毎に繰り返し、1分間続けます。

書いたスクリプト

「***.***.***.***」はルータのIPアドレスです。
#!/usr/local/bin/perl -w

use utf8;
use strict;
use warnings;
use Encode;
use open IO => ":utf8";
use LWP::UserAgent;
use HTML::Form;

binmode STDOUT, ":encoding(cp932)";

$| = 1;

my $ua = LWP::UserAgent->new();
$ua->credentials("***.***.***.***:80", "YAMAHA-RT [administrator] ", "", "");

for (my $sec = 0; $sec < 60; ) {
	my $res = $ua->get("http://***.***.***.***");

	my @form = HTML::Form->parse($res);
	my $form = $form[4];
	$ua->request($form->click());

	sleep 2;
	$sec += 2;
}

exit;