Dela via


Resolve IP Addresses to Hostname using PowerShell

I had a previous customer shoot me an email asking for help whipping up a script to convert a list of IP addresses from a text file to their respective host names, and put that into another text file.  I put together a little demonstration script to show a way to get this done.  I am using the .Net Static Class “system.net.DNS”.  I hope this is useful to someone :)

 

# The following line read a plain list of IPs from files. For this demo, I have

# this line commented out and added a line to just define an array of IPs here

#$listofIPs = Get-Content c:\IPList.txt

$listofIPs = "173.136.234.58","173.136.234.59","173.136.234.60"

#Lets create a blank array for the resolved names

$ResultList = @()

# Lets resolve each of these addresses

foreach ($ip in $listofIPs)

{

     $result = $null

    

     $currentEAP = $ErrorActionPreference

     $ErrorActionPreference = "silentlycontinue"

    

     #Use the DNS Static .Net class for the reverse lookup

     # details on this method found here: https://msdn.microsoft.com/en-us/library/ms143997.aspx

     $result = [System.Net.Dns]::gethostentry($ip)

    

     $ErrorActionPreference = $currentEAP

    

     If ($Result)

     {

          $Resultlist += [string]$Result.HostName

     }

     Else

     {

          $Resultlist += "$IP - No HostNameFound"

     }

}

# If we wanted to output the results to a text file we could do this, for this

# demo I have this line commented and another line here to echo the results to the screen

#$resultlist | Out-File c:\output.txt

$ResultList

 

-Gary

This posting is provided "AS IS" with no warranties, and confers no rights. Use of included script samples are subject to the terms specified at https://www.microsoft.com/info/cpyright.htm.

Comments

  • Anonymous
    June 21, 2011
    Thank you for posting this. But for some reason when I use the file name option(i un-commented it out), it doesn't seem to resolve the IP address. All it does it spit back out the IP's and says "No HostnameFound" Put if I enter each IP in the script it works like a charm. Can you help?

  • Anonymous
    March 25, 2014
    Well done. Worked for me.

  • Anonymous
    April 30, 2014
    The comment has been removed

  • Anonymous
    May 01, 2014
    Hi Gary. I took your cert class at MSFT about 2 yrs ago. How have you been?
    This was great. Exactly what I needed.

    Take care amigo.

  • Anonymous
    August 06, 2014
    Works Great. Is there a easy way to print the ip from the iplist along hostname

  • Anonymous
    October 16, 2014
    Great Script

  • Anonymous
    January 06, 2015
    The comment has been removed

  • Anonymous
    January 30, 2015
    The comment has been removed

  • Anonymous
    April 21, 2015
    This could help you;
    http://securityposts.blogspot.com.tr/2012/04/getting-hostname-from-ip-address-list.html

  • Anonymous
    April 27, 2015
    This is a tiny tool for converting a list of IP Addresses to Hostname or reverse
    http://sourceforge.net/projects/iphostnameconverter/

  • Anonymous
    September 28, 2015
    Thanks so much this worked like a champ!

  • Anonymous
    January 25, 2016
    The comment has been removed

  • Anonymous
    March 29, 2016
    Well done, thank you