Home > Windows にまつわる e.t.c.

PowerShell でホスト名から IP アドレスを得る


ホスト名や FQDN から IP アドレス得るには、nslookup や ping で確認するのですが、PowerShell スクリプトでハンドリングする場合だとこの方法は今一つ使い勝手が良くないですね。

適切なコマンドレットが見当たらなかったので、.NET Framework の System.Net.Dns メソッド GetHostAddresses を使って IP アドレスを得てみます。

[System.Net.Dns]::GetHostAddresses("ホスト名/FQDN")

 

GetHostAddresses は DNS 問い合わせをして、IPv4/IPv6 アドレスのすべてを返すので、戻り値は配列になっています。

IPv4/IPv6 アドレスの区別は AddressFamily を見て、"InterNetwork" なら IPv4、"InterNetworkV6" なら IPv6 アドレスと判断します。

IPv4 アドレスを得るのであれば、以下のようにします(複数 IPv4 アドレスを持っている可能性があるので、配列にして先頭の値を取る例)

$Terget = "www.microsoft.com"
$DnsData = [System.Net.Dns]::GetHostAddresses($Terget)
$IPv4Addresses = @($DnsData | ? {$_.AddressFamily -eq "InterNetwork"})
$IPv4Address = $IPv4Addresses[0].IPAddressToString
echo $IPv4Address

 

 

back.gif (1980 バイト)

home.gif (1907 バイト)

Copyright © MURA All rights reserved.