▼ 2009/02/09(Mon) お手製ValueDomain更新ツール
WindowsでDNS Updateを行うといったら、DiCEが有名なツールなのだが、友人宅のPCではどうもうまく更新されないらしい。
更新ステータスは正常と帰ってくるものの、実際は更新されていないようになってたり、反映されるIPがちょっと過去のものだったり……と。
DiCEが原因だとは思いにくいが、とりあえず生のStatus値を見て更新状況をチェックしたいのと、自分はLinuxのCronで更新しててwgetの方が扱いやすいので、そちらに切り替えてみる。
といっても、Windowsはコマンドシェルがショボくて困る。
cronのような柔軟なシステムをタスクスケジューラで作るのは難しく*1、Sleepすらシェルでは使えない*2のか…。
で、start.vbsをスタートアップに放り込んでおけば、タスクバーに何も出ずに裏で10分毎にIPを更新しにいくはずです。
dyn.value-domain.comは5台に分散しているようですし、まあ5分、10分おきならば問題ないでしょう。
更新ステータスは正常と帰ってくるものの、実際は更新されていないようになってたり、反映されるIPがちょっと過去のものだったり……と。
DiCEが原因だとは思いにくいが、とりあえず生のStatus値を見て更新状況をチェックしたいのと、自分はLinuxのCronで更新しててwgetの方が扱いやすいので、そちらに切り替えてみる。
といっても、Windowsはコマンドシェルがショボくて困る。
cronのような柔軟なシステムをタスクスケジューラで作るのは難しく*1、Sleepすらシェルでは使えない*2のか…。
- valuedomain.bat
メインの更新を行う部分とスリープを交互に繰り返す部分
REM ↓は設置ディレクトリに適宜変更 cd /d "C:\Program Files\wget\bin" :loop REM ↓太字の部分を適宜変更 wget.exe -q -O - "http://dyn.value-domain.com/cgi-bin/dyn.fcg?d=設定ドメイン&p=あなたのパスワード&h=設定ホスト" cscript //NoLogo sleep.vbs goto loop
- sleep.vbs
ただSleepするだけ。
単位はmsなので、10[min] = 600[s] = 600000[ms]と設定
WScript.Sleep 600000
- start.vbs
バッチファイルをタスクバーに出さずに起動するためにShell.Runを使用。
第2引数の0を指定するのがミソ。
CreateObject("WScript.Shell").Run "C:\Progra~1\wget\bin\valued~1.bat",0
で、start.vbsをスタートアップに放り込んでおけば、タスクバーに何も出ずに裏で10分毎にIPを更新しにいくはずです。
dyn.value-domain.comは5台に分散しているようですし、まあ5分、10分おきならば問題ないでしょう。
参考になった記事や興味深かった記事は、他の人も見つけやすいようにリンクやはてブしていただけると助かります…。
コメントも歓迎です。
▼ コメント(0件)
- TB-URL http://mo.kerosoft.com/0103/tb/
