2つの方法を紹介します。
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 | [次の値を含まない] |
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 の基本的なコマンドはかわらないので何の問題もありません。
コメント