PowerShell で IPアドレスを取得する

スポンサーリンク

2つの方法を紹介します。

TEST

1. Get-NetIPAddress コマンド

書式

 (Get-NetIPAddress | Where-Object {$_.[オブジェクト] [比較演算子] "[文字列]"} | Where-Object {$_.[オブジェクト] [比較演算子] "[文字列]"}).IPAddress

> (Get-NetIPAddress | Where-Object {$_.AddressFamily -eq "IPv4"} | Where-Object {$_.InterfaceAlias -notlike "Pseudo-Interface"}).IPAddress
192.168.8.100

解説

Get-NetIPAddress 結果をパイプライン(|) で Where-Object に引き渡しています。Where-Object でオブジェクトを絞ることで目的のIPアドレスを取得できます。この例では IPv4 かつ LoopBack アドレス(127.0.0.1) ではない IP アドレスを取り出しています。

Where-Object については下記で解説しています。
※参考:【where-Object】PowerShell で条件に該当するものを取り出す

使える比較演算子は下表のとおりです。

比較演算子意味
-eq次の値と等しい
-ne次の値と等しくない
-lt次の値未満
-le次の値以下
-gt次の値より大きい
-ge次の値以上
-like次の文字列と類似 (テキストのワイルドカード比較)
-notlike次の文字列と類似していない (テキストのワイルドカード比較)
-contains内容
-notcontains[次の値を含まない]
出典:パイプラインからオブジェクトを削除する (Where-Object)

2. Get-WmiObject

無駄な情報がないので取り扱いやすいのが特徴です。

書式

(Get-WmiObject Win32_NetworkAdapterConfiguration).IPAddress

> (Get-WmiObject Win32_NetworkAdapterConfiguration).IPAddress
192.168.8.100
fe70::1da8:8da7:3c3f:1043

解説

Get-WmiObject Win32_NetworkAdapterConfiguration の結果からIPAddressオブジェクトを取り出しています。うまくやればIPv4のみ取り出すこともできると思います。

以上

PowerShell に関しては下記の本をお勧めしておきます。プログラミング初心者向けに丁寧に解説されています。2015年に出版された本ですが、PowerShell の基本的なコマンドはかわらないので何の問題もありません。

コメント