※ ChatGPTを利用し、要約された質問です(原文:クライアントマシンからルーターの自動制御を行う(Java Script操作))
クライアントマシンからルーターの自動制御を行う方法
このQ&Aのポイント
クライアントマシンから無線ルーターの再起動を実現する方法について説明します。
ブラウザで192.168.1.1にアクセスし、再起動ボタンをクリックしてルーターを再起動させる方法について詳しく解説します。
また、Perlスクリプトを使ってリモートマシンのCrontabで定期的に再起動を行う方法についても説明します。
クライアントマシンからルーターの自動制御を行う(Java Script操作)
初心者です。
無線ルーター(Webcaster110)につながっているクライアントマシンから定期的にルーターへ命令を送り、ルーターを再起動させたいと思っています。
ブラウザで192.168.1.1でルーターにアクセスし、解析したところ、再起動ボタンをクリックする実態は以下になります。
<INPUT TYPE="button" NAME="reboot_only" VALUE="再起動" ONCLICK="reboot_kind(this,'0','1')">
なお、このreboot_kind(this,'0','1')の実態は
/scripts/st_mainte.js
に記述されており、該当箇所は
function reboot_kind(field, dis_flg, lev)
{
var form = field.form;
var ret = true;
ret = Disabled_Action(dis_flg, field.name);
if (ret != true) return;
switch (lev) {
case "st_pro":
if (form.st_pro.disabled != false) {
alert("「確認」ボタンをクリックしてから「送信」ボタンをクリックしてください。\n\n※設定した値が不正な値の場合、エラーメッセージが表示されます。");
form.BUTTON_FLAG.value = "0";
return false;
}
form.action = "/cgi-bin/st_reboot.cgi";
form.target = "_top";
form.CGI_OK_PATH.value="/reboot_update1.html";
form.REBOOT_LEVEL.value = "0";
form.BUTTON_FLAG.value = "1";
form.submit();
return true;
case "0":
ret = confirm ("設定したデータを本商品へ設定し、再起動を行います。\nよろしいですか?\n\n※再起動のあと、設定したデータが反映されます。");
break;
case "1":
ret = confirm ("本商品の再起動を行います。\nよろしいですか?\n\n※設定したデータは反映されません。");
break;
case "2":
ret = confirm ("本商品を初期設定へ戻し、再起動を行います。\nよろしいですか?\n\n※お客様が設定したデータはすべて失われます。");
break;
case "3":
ret = confirm ("本商品をシャットダウンして電源を切れる状態にします。\nよろしいですか?\n\n※電源投入時、設定したデータが反映されます。");
if (ret == true) {
form.CGI_OK_PATH.value = "/reboot_shutdown.html";
}
break;
case "4":
ret = confirm ("本商品をシャットダウンして電源を切れる状態にします。\nよろしいですか?\n\n※設定したデータは反映されません。");
if (ret == true) {
form.CGI_OK_PATH.value = "/reboot_shutdown.html";
}
break;
}
if (ret != true) {
form.BUTTON_FLAG.value = "0";
if (dis_flg != "0") {
field.disabled = false;
}
return false;
}
form.REBOOT_LEVEL.value = lev;
form.submit();
return true;
}
function st_backupconf()
{
var ret;
var form;
var button;
ret = false;
button = '9';
document.st_backupconf_exec.BUTTON_EXEC.disabled = true;
if(1 == document.st_backupconf_exec.BUTTON_FLAG.value){
alert("実行中です。");
document.st_backupconf_exec.BUTTON_EXEC.disabled = false;
return false;
}
document.st_backupconf_exec.BUTTON_FLAG.value = "1";
button = Get_radio_checkedvalue(document.st_backupconf_form.ACTION_SEL);
switch(button){
case '0':
form = document.st_backupconf_save;
form.ACTION_KIND.value = "0";
ret = confirm("設定データの保存を行います\n\n\n" + "※設定データを復元する際、現在設定中のWeb設定ログインパスワードを入力する必要があります\n" + "※現在の設定を本商品に反映したあとに保存することを推奨します");
break;
case '1':
form = document.st_backupconf_restore;
ret = Null_NG(form.PASSWORD);
if (ret != true) break;
if(form.PASSWORD.value != ""){
ret = CheckID(form.PASSWORD);
if (ret != true) break;
}
ret = Null_NG(form.UPLOAD_FILE);
if (ret != true) break;
ret = CheckFilePath(form.UPLOAD_FILE);
if(false == ret) break;
form.ACTION_KIND.value = "1";
ret = true;
break;
default:
ret = false;
break;
}
if (ret == true) {
form.submit();
}else{
document.st_backupconf_exec.BUTTON_FLAG.value = "0";
document.st_backupconf_exec.BUTTON_EXEC.disabled = false;
}
return ret;
}
となっています。
Perlで書いたスクリプトをリモートマシンのCrontabで毎日走らせて実現できないかと考えています。どこからはじめればよいかご教授いただけると幸いです。