f5.si へPowershellからHTTP GETリクエストを投げる方法
身内にDDNSの「f5.si」を利用している人が居るので、その人向けにPowershell上からf5.siへHTTP GETリクエストを投げ、ホスト名を変更する方法を書きます。
# f5.si へHTTP GETリクエストを投げる # グローバルIPアドレスの取得 $address = (Invoke-WebRequest -Uri "inet-ip.info/ip").Content # 投げるGETリクエスト先 $url = "https://f5.si/update.php?domain=USERNAME&password=PASSWORD&ip=$address" # ipv4 address # レスポンス Write-Host $res 等で詳細を表示可能 $res = Invoke-WebRequest $url # ループさせないのでswitch caseではなくif elseifを利用 if ($res.Content -ne "OK:SUCCESS (good)"){ if($res.Content -eq "ERROR:100"){ Write-Warning "パスワードまたはトークンが間違っています" }elseif($res.Content -eq "ERROR:110"){ Write-Warning "ユーザー名が間違っています" }elseif($res.Content -eq "ERROR:120"){ Write-Warning "IPアドレスの形式が不正です" }elseif($res.Content -eq "ERROR:200"){ Write-Warning "[システムエラー]DBサーバーに接続不能です" }elseif($res.Content -eq "ERROR:210"){ Write-Warning "[システムエラー]DNSサーバーに接続不能です" }elseif($res.Content -eq "ERROR:300"){ Write-Warning "[システムエラー]更新確認ができませんでした" }elseif($res.Content -eq "ERROR:400"){ Write-Warning "詳細設定でCNAMEが設定中のためAレコードが利用不可です" }else{ Write-Warning "不明なエラー" } Write-Warning "エラーが発生しているため、更新ができませんでした。" Write-Warning "エラー内容にしたがって該当箇所を修正し、再度スクリプトを実行してください" } pause exit
USERNAMEとPASSWORDを自分の登録情報へ変更すれば問題なく変更できるはずです。
※ f5.siを利用していないのでテストもデバッグもしてません。
DiCE等を利用しないメリットとしては
- タスクスケジューラに登録すればDiCEより短い間隔で更新の手続きを行える
- DiCEとf5.si用追加batをダウンロードする必要がない
以上です。