ddo.jpのIPアドレス更新を行うためのスクリプト
タスクに登録することで定期実行可能
※注意:エラー処理&例外処理は行っていません。
############################################################### ## Downloads a HTML Source ############################################################### function HGet { param( $url = (Read-Host "The URL to download") ) [string]$html = "" $req = [System.Net.HttpWebRequest]::Create($url) $res = $req.GetResponse() $enc = [System.Text.Encoding]::GetEncoding($res.CharacterSet) if($res.StatusCode -eq 200) { $stream = $res.GetResponseStream() $sr = New-Object System.IO.StreamReader($stream, $enc) $html = $sr.ReadToEnd(); $sr.Close() $stream.Close() } $res.Close() return $html } ############################################################################### ## ddo.jp のDNS自動更新のためのスクリプト ## IDとPASSは ConvertFrom-SecureString (Get-Credential).Password で取得した文字列を使用する。 ############################################################################### $url = "http://free.ddo.jp/dnsupdate.php" $dic = @{ } $dic.dn = "登録したID" $dic.pw = "登録したPASS" $dic.ip = "8.8.8.8" #WAN-IP取得 $html = HGet("http://webpage-utils.appspot.com/ip") #URL作成 $value = $dic.GetEnumerator() | % { "{0}={1}" -f $_.Name, $_.Value } $value = $value -join "&" $url = ("{0}?{1}" -f $url, $value) #DNSの更新 (GETでアクセスするだけ) $html = HGet($url) $html
■参考サイト
Google App Engine で WAN 側 IP アドレスを取得
WebRequest/WebResponseクラスでWebページを取得するには?