MR2オーナー吉田貴幸のブログ

MR2(SW20)オーナー吉田貴幸のブログ。仕事はITインフラエンジニア。愛車の記事とIT関連の情報を発信しています

【Windows】[Powershell] グローバルIPアドレスを取得する

f:id:takayuki-yoshida:20190421223552p:plain

 

はじめに

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
}

 

参考

support.google.com