このサイトのドメイン名は livedoor domain や J-SPEED のダイナミックDNSサービスを利用させて頂いております。どちらのサービスでも、クイックアップデート(特定のURLにアクセスすると、アクセス元のIPアドレスからDDNSのIP登録を更新する)機能が提供されています。これに対応したWSHを作ってみました。
※ 似たような機能をもつソフトではDiCEがメジャーですね。
value domainのDDNS更新ページをHTTPリクエストし、IP更新があった場合、イベントログとメールで通知するスクリプト †
ddnsUpdate_20120610.vbs (5.91KB)
cscript //B //Nologo ddnsUpdate.vbs {ddns domainname} {ddns password} [hostname]
ddnsUpdate_20090904.vbs (4.94KB)
cscript //B //Nologo ddnsUpdate.vbs {ddns hostname} {ddns password}
ddnsUpdate_20080328.vbs (4.63KB)
cscript //B //Nologo ddnsUpdate.vbs
- タスクスケジューラなどで、10分毎に繰り返し実行することを想定しています。
- 繰り返し時間間隔は、DDNS設定が反映されるタイムラグを考慮して設定します。
- 利用時には、クイックアップデート用のURL、SMTP等、ファイル上部に記載されている各項目の設定をして下さい。
- Microsoft.CDOを用いて、SMTP Auth機能を追加しました。
- GmailのSMTP Serverにも送信可能です。(一部送信先アドレス制限がある?)
- HTTPレスポンスにはIPアドレス変更情報がないので、DDNS更新前後に nslookup を実行して、IPアドレスの変化を判断しています。
livedoor domainのDDNS更新ページをHTTPリクエストし、IP更新があった場合、イベントログとメールで通知するスクリプト †
ddnsUpdate_1.3_hostname.vbs (5.56KB)
cscript //B //Nologo ddnsUpdate_hostname.vbs
- タスクスケジューラなどで、繰り返し実行することを想定しています。
- 利用時には、クイックアップデート用のURL、SMTP・POP用の設定をして下さい。
- POP before SMTP対応のために、AS-POP3を使わせて頂いております。POP before SMTP動作時には、該当DLLの登録が必要です。。(2005/10/04)
- livedoorのDDNS更新ページのレスポンスはASCII TEXTなので、J-Speed版のような文字コード対応は必要なく、一時ファイルの作成も行いません。
- レスポンスだけでは、「IPアドレス変更があったかどうか」判別できないので、DDNS更新前に nslookup を実行して、IPの変化をみています。
J-SpeedのDDNS更新ページをHTTPリクエストし、IP更新があった場合、イベントログとメールで通知するスクリプト †
ddnsUpdate_1.1.vbs (3.88KB)
cscript //B //Nologo ddnsUpdate.vbs
- タスクスケジューラなどで、繰り返し実行することを想定しています。
- 利用時には、クイックアップデート用のURL、SMTP・POP用の設定をして下さい。
- POP before SMTP対応のために、AS-POP3を使わせて頂いております。POP before SMTP動作時には、該当DLLの登録が必要です。。(2005/10/04)
- Microsoft.XMLHTTPでテキストをダウンロードする機能はUTF-8(or UTF-16)にしか対応していないので、苦肉の策としてバイナリダウンロードし、Current_DIRに一時ファイルを生成します。そのため、実行にはCurrent_DIRへの書き込み権限が必要です。
- 技術的なキモは、HTTPダウンロードにはMicrosoft.XMLHTTPとADODB.Streamの組み合わせが好いのじゃないか、というところです。
- やっぱり、HTTPサーバからの応答がない場合にフリーズしちゃうのは困るので、タイムアウトの設定を追加しました。(2005/06/25)