にっきのお時間(仮)

Total : Hits 
Today : Hits / Yesterday : Hits 



2010/09/25 (Sat) [長年日記]

_ スクリプト公開

数日前からちまちまと作っていたスクリプトが出来たっぽいので公開してみる。需要があるかは不明だけど(^^;

BUFFALO社製ルータWZR-HP-G300NHの再起動をローカルPC(Windows)から行うスクリプトです。

' BUFFALO WZR-HP-G300NH の再起動スクリプト

routerIP = "192.168.xxx.xxx" ' ルータIP
routerID = "root" ' ID root固定
routerPS = "ぱすわーど" ' パスワード

initURL = "http://" & routerIP & "/cgi-bin/cgi?req=frm&frm=init.html"
rebootURL = "http://" & routerIP & "/cgi-bin/cgi?req=inp&res=waiting_page.html"
startURL = "http://" & routerIP & "/"
sWd1 = "sWebSessionnum value="
sWd2 = "sWebSessionid value="

Set fs = WScript.CreateObject("Scripting.FileSystemObject")
Set fn = fs.OpenTextFile("reboot_router.log",8,True) ' ログを残しておく

Set HTTP = CreateObject("MSXML2.XMLHTTP")

HTTP.open "GET", initURL, False, routerID, routerPS
HTTP.send

' セッション番号を探す
sNum = InStr(HTTP.responseText, sWd1) + Len(sWd1)
sNumE = mid(HTTP.responseText, sNum)
sNumE = InStr(sNumE, ">")
sNum = mid(HTTP.responseText, sNum, sNumE - 1)

' セッションIDを探す
sId = InStr(HTTP.responseText, sWd2) + Len(sWd2)
sIdE = mid(HTTP.responseText, sId)
sIdE = InStr(sIdE, ">")
sId = mid(HTTP.responseText, sId, sIdE - 1)

' 送信データを作成
sendMsg = "reboot=再起動&sWebSessionnum=" & sNum & "&sWebSessionid=" & sID

HTTP.open "POST", rebootURL, False, routerID, routerPS
HTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=EUC-JP"
HTTP.setRequestHeader "Content-Length", Len(sendMsg)
HTTP.send sendMsg

if HTTP.status = "200" then
fn.Write Now & " reboot start" & vbCrLf
WScript.Sleep 120000
do
HTTP.open "GET", startURL, False, routerID, routerPS
HTTP.send
WScript.Sleep 1000
loop Until HTTP.status = "200"
fn.Write Now & " reboot end" & vbCrLf
' msgbox "再起動完了"
else
fn.Write Now & " reboot failed" & vbCrLf
end if

fn.Close

Set fs = Nothing
Set HTTP = Nothing

上を適当な名前.vbsで保存してください。文字コードはEUCじゃないとダメかも。
Ver.1.74+Windows7にて確認。他は分かりません。何かあっても責任は取れません。ごめんなさい。
ウチの環境では、無線LANで繋がっているハズ*1のプリンタが他PCから見えなくなるといった現象が見られます。
ルータ再起動で直るので毎週土曜朝にでも再起動させようと思ったのがきっかけ。プログラムタイマーでも買おうかと思ってたんだけど。これをタスクマネージャーに設定して対応してみる。

不備とかおかしなところがあったら指摘してくれるとありがたいです。エラー処理とかしてないのはメンドイからです(汗;;

*1 ルータからはプリンタが見えてる

_ ひるま@家

あまりの寒さにコタツをセッティング。・・・がコタツのケーブルが見当たらず。どこへ行ったのやら。困った・・・

_ ひるま@ちょっとおでかけ

ツマ実家へ。コタツケーブルはこちらにあったっぽい。

本屋さんへ。

スーパーにも寄り道。

_ スクリプト追記

上記の最後に、

logURL = "http://" & routerIP & "/cgi-bin/cgi?req=tfr&id=54"
Set WSHShell=Wscript.CreateObject("Wscript.Shell")
WSHShell.Run(logURL)

とか追記してみると、ルータのログ表示ページが表示されるのでうれしかったりするかもしれません。とかとか。

・・・それにしても、切り貼りなのがバレバレなソースで恥かしいところです(^^;;

_ ゆうべ@家

ウィスキー呑みつつまたーり。ロックがいいね。


2004|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|
過去日記(1999/10〜2004/03)



この日記は 紅茶♪ が書いています。
RSSリーダ用には こちら をどうぞ
背景はstrawberry fieldsさんトコから拝借