You have a string
representation of a host (such as
www.oreilly.com
), and you need to obtain the IP
address from this hostname.
Use the Dns.Resolve
method to get the IP addresses. In the following code, a hostname is
provided to the Resolve
method that returns an
IPHostEntry
from which a string of addresses can
be constructed and returned:
using System; using System.Net; using System.Text; // ... public static string HostName2IP(string hostname) { // resolve the hostname into an iphost entry using the dns class IPHostEntry iphost = System.Net.Dns.Resolve(hostname); // get all of the possible IP addresses for this hostname IPAddress[] addresses = iphost.AddressList; // make a text representation of the list StringBuilder addressList = new StringBuilder( ); // get each ip address foreach(IPAddress address in addresses) { // append it to the list addressList.Append("IP Address: "); addressList.Append(address.ToString( )); addressList.Append(";"); } return addressList.ToString( ); } // ... // writes "IP Address: 208.201.239.37;IP Address: 208.201.239.36;" Console.WriteLine(HostName2IP("www.oreilly.com"));
An
IPHostEntry
can associate multiple IP addresses
with a single hostname via the AddressList
property. AddressList
is an array of
IPAddress
objects, each of which holds a single IP
address. Once the IPHostEntry
is resolved, the
AddressList
can be looped over using
foreach
to create a string that shows all of the
IP addresses for the given hostname.