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

スポンサーリンク

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[次の値を含まない]
出典:パイプラインからオブジェクトを削除する (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 の基本的なコマンドはかわらないので何の問題もありません。

コメント

このページは「広告ブロッカー」を使っている人だけに表示される隠しページです。
ここにたどり着いたあなたには特別に当サイトのおすすめ書籍を紹介します。

当サイトのおすすめ書籍ランキング

第5位 達人プログラマー

第4位 マスタリングTCP/IP 入門編

第3位 ネットワークはなぜつながるのか

第2位 リーダブルコード

第1位 プログラムはなぜ動くのか