vbs

MyDNSへのIP通知

はじめに

MyDNSのIP通知用URLへBASIC認証するだけで、IP通知が出来る。
BASIC認証のUSER:PASSはMyDNSのアカウントになる。

https://www.mydns.jp/login.html

動作は最小限で「IEを立ち上げる」、「URLを開く」、「BASIC認証」でログインするスクリプトを作りました。

スクリプト

Dim objIE
Set objIE = CreateObject("InternetExplorer.Application")
Dim URL
url = "https://www.mydns.jp/login.html"
objIE.navigate URL, , , , "Authorization: Basic USER:PASSWORD"
WScript.Sleep 5000
objIE.Quit

解説

■変数宣言

Dim objIE

■InternetExplorerオブジェクトを作成

Set objIE = CreateObject("InternetExplorer.Application")

オブジェクトなので頭にSetを付ける。

■変数宣言

Dim URL

■URLを代入

URL = "https://www.mydns.jp/login.html"

オブジェクトではない為、頭にSetは不要。

■BASIC認証でログイン

objIE.navigate URL, , , , "Authorization: Basic USER:PASSWORD"

【Navigateメソッドの引数】
object.Navigate URL [Flags,] [TargetFrameName,] [PostData,] [Headers]

【BASIC認証のUSERとPASSWORD】
USER:PASSWORDはBASE64エンコードされたデータを入れる必要がある。

  • プレーンテキスト
    tanaka:123456
    👇
  • BASE64
    dGFuYWthOjEyMzQ1Ng==

変換サイト
https://hogehoge.tk/tool/

■ウェイト5秒

WScript.Sleep 5000

ウェイトを入れないと、通知できない事があり5秒ウェイトを入れている。

■objIEオブジェクトの終了

objIE.Quit

テスト

自宅サーバー、Wi-FIスポットで接続したノートPCのグローバルIPの通知を行い、MyDNSの管理画面で反映しているか確認をする。
その後、ドメイン名でVPN接続をして接続が完了するか確認をする。

  • ノートPCからIP通知 通知1.png

IPアドレスが103.5.140.172で登録されたことを確認。

  • 自宅サーバーからIP通知 通知2.png

IPアドレスが126.66.xxx.xxxで登録されたことを確認。
nslookupでも確認。

サーバー:  UnKnown
Address:  103.5.140.1

権限のない回答:
名前:    xxxx.mydns.jp
Address:  126.66.xxx.xxx

xxxx.mydns.jpでVPN接続できることを確認。

PPP アダプター home:

   接続固有の DNS サフィックス . . . . .:
   IPv4 アドレス . . . . . . . . . . . .: 192.168.1.242
   サブネット マスク . . . . . . . . . .: 255.255.255.255
   デフォルト ゲートウェイ . . . . . . .:

Wireless LAN adapter Wi-Fi:

   接続固有の DNS サフィックス . . . . .: wi2.ne.jp
   リンクローカル IPv6 アドレス. . . . .: fe80::58a2:d126:ffce:5ee9%2
   IPv4 アドレス . . . . . . . . . . . .: 10.4.243.69
   サブネット マスク . . . . . . . . . .: 255.255.248.0
   デフォルト ゲートウェイ . . . . . . .: 10.4.240.1

まとめ

あとはタスクスケジューラにぶっこんどけば定期的にMyDNSへIP通知を行ってくれる。

また今回のコードでは、IEは画面上に立ち上がってこない。
objIE.Visibleの値を指定しない場合は、デフォルト動作としてIEは立ち上がってこないが、裏で処理をしている状態、IEを視覚的に立ち上げる場合は、objIE.Visible = Trueとすることでブラウザが立ち上がってくる。