Saturday, December 15, 2007

Resolve domain in a thread - DNS / System.Net.Sockets | VB.Net Tutorial

Resolve domain in a thread : Dns « Socket Network « VB.Net Tutorial


Resolve domain in a thread





Imports System.Net
Imports System.Net.Sockets


Public Class Tester
Public Shared Sub Main

Dim myThread As Threading.Thread
myThread = New Threading.Thread(AddressOf BeginResolveIP)
myThread.Start()

End Sub
Private Shared Sub BeginResolveIP()
Try
Dim myAsyncCallback As New AsyncCallback(AddressOf GetIPList)


Dim myIAsyncResult As IAsyncResult = Dns.BeginResolve("www.google.com", myAsyncCallback, Nothing)

Do While Not myIAsyncResult.IsCompleted
Threading.Thread.Sleep(10)
Loop
Threading.Thread.Sleep(2000)
Catch ex As SocketException
Console.WriteLine(ex.Message)
End Try

End Sub

Private Shared Sub GetIPList(ByVal pIAsyncResult As IAsyncResult)
Dim myIPHostEntry As IPHostEntry
myIPHostEntry = Dns.EndResolve(pIAsyncResult)

Dim myIPAddresses() As IPAddress = myIPHostEntry.AddressList
Dim myIPAddress As IPAddress

For Each myIPAddress In myIPAddresses
Console.WriteLine(myIPAddress.ToString)
Next
End Sub


End Class








result:
72.14.253.147
72.14.253.103
72.14.253.99
72.14.253.104



see also:
20. 16. Dns
20. 16. 1. Dns.GetHostName
20. 16. 2. Get IP address by domain name
20. 16. 3. Get Host name by address
20. 16. 4. Resolve domain in a thread
20. 16. 5. Get Host Name and IP address