2 out of 14 rated this helpful - Rate this topic

Dns.GetHostEntry Method (String)

Note: This method is new in the .NET Framework version 2.0.

Resolves a host name or IP address to an IPHostEntry instance.

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

public static IPHostEntry GetHostEntry (
	string hostNameOrAddress
)
public static IPHostEntry GetHostEntry (
	String hostNameOrAddress
)
public static function GetHostEntry (
	hostNameOrAddress : String
) : IPHostEntry

Parameters

hostNameOrAddress

The host name or IP address to resolve.

Return Value

An IPHostEntry instance that contains address information about the host specified in hostNameOrAddress.
Exception type Condition

ArgumentNullException

hostNameOrAddress is a 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.

The GetHostEntry method queries a DNS server for the IP address that is associated with a host name or IP address.

When an empty string is passed as the host name, this method returns the IPv4 addresses of the local host.

NoteNote

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

The following example uses the GetHostEntry method to resolve an IP address to an IPHostEntry instance.

public static void DoGetHostEntry(string hostname)
{
    IPHostEntry host;

    host = Dns.GetHostEntry(hostname);

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

    foreach (IPAddress ip in host.AddressList)
    {
        Console.WriteLine("    {0}", ip);
    }
}

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0

.NET Compact Framework

Supported in: 2.0
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ
Works for IPv6 as well
The documentation above is incorrect - "When an empty string is passed as the host name, this method returns the IPv4 addresses of the local host."

Here is a code and output example illustrating this:

            foreach (var ip in Dns.GetHostEntry("").AddressList)
            {
                Console.WriteLine(ip);
            }

fe80::acb8:6d46:193b:94c6%13
2001:4898:2a:3:acb8:6d46:193b:94c6
fe80::5efe:172.30.180.166%14
2001:4898:0:fff:0:5efe:172.30.180.166
172.30.180.166

So, it's clear that this returns not only IPv4, but IPv6 addresses as well.
Missing VB code sample
    Public Shared Sub DoGetHostEntry(ByVal hostname As String)
        Dim host As IPHostEntry
 
        host = Dns.GetHostEntry(hostname)
 
        Console.WriteLine("GetHostEntry({0}) returns:", hostname)
 
        For Each ip As IPAddress In host.AddressList
            Console.WriteLine("    {0}", ip)
        Next ip
    End Sub
Timeout on GetHostEntry

If you want to have this method wrapped, with timeout and default on DNS exceptions, check this out.

http://www.chapleau.info/cs/blogs/fchapleau/archive/2008/09/09/reverse-dns-lookup-with-timeout-in-c.aspx