はじめに
Powershellを使用して現在接続しているインターネットのグローバルIPアドレスを取得する方法です。また、グローバルIPアドレスに変更があるかをチェックして、変更有無を出力するサンプルをご紹介します。
グローバルIPアドレスの取得
googleのグローバルIPアドレスチェックサイトを使用して、PowershellでグローバルIPアドレスを取得するコマンドです
PS> (Invoke-WebRequest https://domains.google.com/checkip -UseBasicParsing).content
グローバルIPアドレスに変更があったかを確認する
グローバルIPアドレスを結果ファイルに保存して、変更があった場合は"変更あり"を画面に出力するサンプルです
- checkglobalIP.ps1
#取得したグローバルIPアドレスの結果ファイル
$text_path = $env:TEMP + "\get-grobalIP_result.txt"
#現在のグローバルIPアドレス取得する。取得できない場合はエラー出力
try {
$currentIP = (Invoke-WebRequest https://domains.google.com/checkip -UseBasicParsing).content
}catch{
write-host "ERROR:グローバルIPアドレスが取得できませんでした"
exit
}
#前回の結果ファイルが存在するか確認しなければ現在のグローバルIPアドレスで結果ファイルを作成する
if ((Test-Path $text_path) -eq $false){
Write-Output $currentIP | Out-File $text_path -Encoding default
exit
}else{
$lastIP = Get-Content $text_path
}
#取得したグローバルIPアドレスを前回の結果と比較し結果を出力する。変更があった場合は結果ファイルに保存する
if ($currentIP -eq $lastIP) {
write-host "グローバルIP変更なし"
}else{
write-host "グローバルIP変更あり"
write-Output $currentIP | Out-File $text_path -Encoding default
}