.NET Framework Class Library
Dns..::.GetHostAddresses Method

Returns the Internet Protocol (IP) addresses for the specified host.

Namespace:  System.Net
Assembly:  System (in System.dll)
Syntax

Visual Basic (Declaration)
Public Shared Function GetHostAddresses ( _
    hostNameOrAddress As String _
) As IPAddress()
Visual Basic (Usage)
Dim hostNameOrAddress As String
Dim returnValue As IPAddress()

returnValue = Dns.GetHostAddresses(hostNameOrAddress)
C#
public static IPAddress[] GetHostAddresses(
    string hostNameOrAddress
)
Visual C++
public:
static array<IPAddress^>^ GetHostAddresses(
    String^ hostNameOrAddress
)
JScript
public static function GetHostAddresses(
    hostNameOrAddress : String
) : IPAddress[]

Parameters

hostNameOrAddress
Type: System..::.String
The host name or IP address to resolve.

Return Value

Type: array<System.Net..::.IPAddress>[]()[]
An array of type IPAddress that holds the IP addresses for the host that is specified by the hostNameOrAddress parameter.
Exceptions

ExceptionCondition
ArgumentNullException

hostNameOrAddress is nullNothingnullptra null reference (Nothing in Visual Basic).

ArgumentOutOfRangeException

The length of hostNameOrAddress is greater than 126 characters.

SocketException

An error is encountered when resolving hostNameOrAddress.

ArgumentException

hostNameOrAddress is an invalid IP address.

Remarks

The GetHostAddresses method queries a DNS server for the IP addresses associated with a host name. If hostNameOrAddress is an IP address, this address is returned without querying the DNS server.

When an empty string is passed as the host name, this method returns the IPv4 addresses of the local host for all operating systems except Windows Server 2003; for Windows Server 2003, both IPv4 and IPv6 addresses for the local host are returned.

NoteNote:

This member emits trace information when you enable network tracing in your application. For more information, see Network Tracing.

Examples

The following code example uses the GetHostAddresses method to resolve an IP address to an array of type IPAddress.

Visual Basic
Public Sub DoGetHostAddresses(hostName As [String])

    Dim ips As IPAddress()

    ips = Dns.GetHostAddresses(hostname)

    Console.WriteLine("GetHostAddresses(" + hostname + ") returns: ")

    Dim index As Integer
    For index = 0 To ips.Length - 1
         Console.WriteLine(ips(index))
    Next index
End Sub    
C#
public static void DoGetHostAddresses(string hostname)
{
    IPAddress[] ips;

    ips = Dns.GetHostAddresses(hostname);

    Console.WriteLine("GetHostAddresses({0}) returns:", hostname);

    foreach (IPAddress ip in ips)
    {
        Console.WriteLine("    {0}", ip);
    }
}
Visual C++
   // Determine the Internet Protocol(IP) addresses for a host.
public:
   static void DoGetHostAddress(String^ hostname)
   {
      array<IPAddress^>^ ips;
      ips = Dns::GetHostAddresses(hostname);

      Console::WriteLine("GetHostAddresses({0}) returns:", hostname);
      for each ( IPAddress^ ip in ips )
      {
         Console::Write( "{0} ", ip );
      }
      Console::WriteLine( "" );
   }

CPP_OLD
// Signals when the resolve has finished.
static ManualResetEvent* resolveFinished = 
    new ManualResetEvent(false);

// define the state object for the callback. 
// use hostName to correlate calls with the proper result.
__gc class ResolveState
{
public:
    String* hostName;
    IPAddress * resolvedIPs[];

    ResolveState(String* host)
    {
        hostName = host;
    }

    __property void set_IPs(IPAddress* IPs[])
        {resolvedIPs = IPs;}
    __property IPAddress* get_IPs()[]{return resolvedIPs;}

    __property void set_host(String* host) {hostName = host;}
    __property String* get_host() {return hostName;}
};

// Record the IPs in the state object for later use.
static void ResolveCallback(IAsyncResult* ar)
{
    ResolveState* ioContext = 
        __try_cast<ResolveState*>(ar->AsyncState);

    ioContext->IPs = Dns::EndResolveToAddresses(ar);
    resolveFinished->Set();
}       

// Determine the Internet Protocol(IP) addresses for this 
// host asynchronously.
static void DoAsyncResolveToAddresses(String* hostName)
{
    resolveFinished->Reset();
    ResolveState* ioContext= new ResolveState(hostName);

    Dns::BeginResolveToAddresses(ioContext->host, 
        new AsyncCallback(0, ResolveCallback), ioContext);
    // Wait here until the resolve completes 
    // (the callback calls .Set())
    resolveFinished->WaitOne();

    Console::Write(
        "Asynchronous Resolve of {0} finished, IPs ", 
        ioContext->host);

    IEnumerator* ips = ioContext->IPs->GetEnumerator();
    while (ips->MoveNext())
    {
        Console::Write("{0} ", ips->Current);
    }
    Console::WriteLine("");

}
.NET Framework Security

Platforms

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Version Information

.NET Framework

Supported in: 3.5, 3.0, 2.0
See Also

Reference

Tags :


Community Content

Thomas Lee
GetHostAddress Using PowerShell
# get-hostaddress.ps1
# Sample using PowerShell
# Thomas Lee - tfl@psp.co.uk
 
# takes a parameter
Param ([string] $hostname = "www.microsoft.com")
 
# Get IP address
$ips = [System.net.Dns]::GetHostAddresses($hostname)
 
# Display results
"GetHostAddresses({0}) returns:" -f $hostname
foreach ($ip in $ips) {
" {0}" -f , $ip
}

This script (called with no parameters displays the following output:

PS C:\Documents and Settings\LeeT> D:\foo\get-hostaddress.ps1
GetHostAddresses(www.microsoft.com) returns:
207.46.193.254
207.46.19.190
207.46.19.254
207.46.192.254
  

Page view tracker