Dns.BeginResolve Method (String, AsyncCallback, Object)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Note: This API is now obsolete.

Begins an asynchronous request to resolve a DNS host name or IP address to an IPAddress instance.

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

<ObsoleteAttribute("BeginResolve is obsoleted for this type, please use BeginGetHostEntry instead. http://go.microsoft.com/fwlink/?linkid=14202")>
<HostProtectionAttribute(SecurityAction.LinkDemand, ExternalThreading := True)>
Public Shared Function BeginResolve (
	hostName As String,
	requestCallback As AsyncCallback,
	stateObject As Object
) As IAsyncResult


Type: System.String

The DNS name of the host.

Type: System.AsyncCallback

An AsyncCallback delegate that references the method to invoke when the operation is complete.

Type: System.Object

A user-defined object that contains information about the operation. This object is passed to the requestCallback delegate when the operation is complete.

Return Value

Type: System.IAsyncResult

An IAsyncResult instance that references the asynchronous request.

Exception Condition

hostName is null.


The caller does not have permission to access DNS information.

The asynchronous BeginResolve operation must be completed by calling the EndResolve method. Typically, the method is invoked by the requestCallback delegate.

This method does not block until the operation is complete. To block until the operation is complete, use the Resolve method.

For more information about using the asynchronous programming model, see Calling Synchronous Methods Asynchronously.


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

The following example uses BeginResolve to resolve a DNS host name to an IPAddress.

Class DnsBeginGetHostByName

    Class RequestState
        Public host As IPHostEntry

        Public Sub New()
            host = Nothing
        End Sub 'NewNew
    End Class 'RequestState

    Public Shared Sub Main()
        ' Create an instance of the RequestState class.
        Dim myRequestState As New RequestState()

        ' Begin an asynchronous request for information such as the host name, IP addresses, 
        ' or aliases for the specified URI.
        Dim asyncResult As IAsyncResult = CType(Dns.BeginResolve("www.contoso.com", AddressOf RespCallback, myRequestState),IAsyncResult)

        ' Wait until asynchronous call completes.
        While asyncResult.IsCompleted <> True
        End While

        Console.WriteLine(("Host name : " + myRequestState.host.HostName))
        Console.WriteLine(ControlChars.Cr + "IP address list : ")
        Dim index As Integer
        For index = 0 To myRequestState.host.AddressList.Length - 1
        Next index
        Console.WriteLine(ControlChars.Cr + "Aliases : ")

        For index = 0 To myRequestState.host.Aliases.Length - 1
        Next index
    catch e as Exception
            Console.WriteLine("Exception caught!!!")
            Console.WriteLine(("Source : " + e.Source))
            Console.WriteLine(("Message : " + e.Message))
    End Try
    End Sub 'Main

    Private Shared Sub RespCallback(ar As IAsyncResult)
            ' Convert the IAsyncResult object to a RequestState object.
            Dim tempRequestState As RequestState = CType(ar.AsyncState, RequestState)

            ' End the asynchronous request.
            tempRequestState.host = Dns.EndResolve(ar)
            Catch e As ArgumentNullException
            Console.WriteLine("ArgumentNullException caught!!!")
            Console.WriteLine(("Source : " + e.Source))
            Console.WriteLine(("Message : " + e.Message))
            Catch e As Exception
            Console.WriteLine("Exception caught!!!")
            Console.WriteLine(("Source : " + e.Source))
            Console.WriteLine(("Message : " + e.Message))
        End Try
    End Sub 'RespCallback


for accessing DNS information. Associated enumeration: PermissionState.Unrestricted

.NET Framework
Available since 1.1
Return to top