Posted at

MyDNSへのIP通知

More than 1 year has passed since last update.


はじめに

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とすることでブラウザが立ち上がってくる。