Needed to update a spreadsheet for a bunch of servers.  I wanted PowerShell to just go look in DNS and try to resolve the name.  I didn’t need to get the configured IP from the server directly and I know they are all registered in DNS.  I also only wanted the v4 addresses, not v6.

Here is what I used to dump their name and IP in a text file.  I then updated the spreadsheet by hand just so I could put human eyes on the list for sanity’s sake.

You’ll need to put the server names in a text file named “servernames.txt” in the same folder as the script.

 

ipconfig /flushdns

$servernames = Get-Content servernames.txt

foreach ($name in $servernames) {

$ips = [System.Net.Dns]::GetHostAddresses($name) | select-object AddressFamily, IPAddressToString
$ip = $ips | ? {$_.AddressFamily -eq "InterNetwork"}
$ip = $ip.IPAddressToString

$string = "$name $ip"
out-file -filepath ips.txt -inputobject $string -append

$ips = $null
$ip = $null

}

 

Some of this borrowed from - http://blogs.msdn.com/b/powershell/archive/2006/06/26/647318.aspx