วันเสาร์ที่ 11 ธันวาคม พ.ศ. 2553

[DNS] Get Host Name and IP address

Imports System.Environment
Imports System.Net
  
Public Class Tester
    Public Shared Sub Main
        Dim hostname As String = Dns.GetHostName()
        Dim ipaddress As String = CType(Dns.GetHostByName(hostname).AddressList.GetValue(0), IPAddr
ess).ToString
        Console.WriteLine("Computer Name: " & hostname & "   IP Address: " & ipaddress)
    End Sub

End Class


-----------------------------------------------------

Code นี้จะแสดงชื่อเครื่องและ IP Address ของเครื่องเรา

[DNS] 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

[DNS] Get Host name by address

Imports System.Net
Imports System.Net.Sockets


Public Class Tester
    Public Shared Sub Main

        Dim strHostName As String

        Try
            strHostName = Dns.GetHostByAddress("68.129.2.123").HostName
            Console.WriteLine(strHostName)
        Catch exfe As FormatException
            Console.WriteLine(exfe.Message)
        Catch exse As SocketException
            Console.WriteLine(exse.Message)
        End Try
    End Sub
End Class


------------------------------------------------------------------

Code นี้จะทำการแสดงชื่อเครื่องของ IP นั้นๆ โดยเราจะเข้าถึงจาก IP Address

Dns.GetHostByAddress("IP Address").Hostname

โดย .Hostname จะเป็น Method ที่ทำหน้าที่แปลง IP Address เป็นชื่อเครื่องคอมพิวเตอร์

[DNS] Dns.GetHostName

Imports System.Net


Public Class Tester
    Public Shared Sub Main

        Console.WriteLine(Dns.GetHostName)
    End Sub
End Class


-------------------------------------------------
จากการทดลอง Code นี้ ผลลัพธ์ที่ได้ จะแสดงชื่อของเครื่องคอมพิวเตอร์เราบนหน้าจอ console โดยใช้ Method: DNS.GetHostName

[DNS] Get IP address by domain name

Imports System.Net
Imports System.Net.Sockets


Public Class Tester
    Public Shared Sub Main


        Try
            Dim myIPHostEntry As IPHostEntry = Dns.Resolve("www.google.com")
            Dim myIPAddresses() As IPAddress = myIPHostEntry.AddressList
            Dim myIPAddress As IPAddress

            Dim strIPAddressList As String

            For Each myIPAddress In myIPAddresses

                Console.WriteLine(myIPAddress.ToString)

            Next
        Catch ex As SocketException
            Console.WriteLine(ex.Message)
        End Try

    End Sub
End Class


----------------------------------------------------------

ผลของโปรแกรม จะทำการแปลงชื่อโดเมนจาก http://www.google.com/ เป็น IP Address ของโดเมนดังกล่าว เนื่องจากเว็บกูเกิ้ลไม่ได้มี Host เพียง IP เดียว จึงต้องใช้ For each เก็บ IP Address เป็นอาเรย์ไว้ จากที่ทดลอง Code นี้

ทางกูเกิ้ลดอทคอม มี IP Address: 6 IP

การใช้งาน For each คำอธิบายและอาเรย์เบื้องต้น

 For Each (ตัวแปร)  in (ชื่ออาเรย์) (ชุดคำสั่ง)
Next
วนลูปจนค่าเท่ากับอาเรย์

ตัวอย่างการประกาศอาเรย์ จะมีวงเล็บตามหลัง โดยด้านหน้าวงเล็บจะเป็นชื่อของอาเรย์
Ex1

Dim myIPAddresses() As IPAddress = myIPHostEntry.AddressList

ตัวอย่างการใช้ For Each
Ex2
           For Each myIPAddress In myIPAddresses

                Console.WriteLine(myIPAddress.ToString)

            Next

myIPAddress คือตัวแปร
muIPAddresses คือชื่อของอาเรย์

ใช้ In ในการดึงเอาข้อมูลในอาเรย์เข้ามายังตัวแปร myIPAddress แล้วแสดงออกมาบนหน้าจอ วนลูปจนค่าเท่ากับอาเรย์

ตัวอย่างโปรแกรมเปลี่ยนชื่อโดเมนแสดงเป็น IP Address

Imports System.Net
Imports System.Net.Sockets


Public Class Tester
    Public Shared Sub Main


        Try
            Dim myIPHostEntry As IPHostEntry = Dns.Resolve("www.google.com")
            Dim myIPAddresses() As IPAddress = myIPHostEntry.AddressList
            Dim myIPAddress As IPAddress

            Dim strIPAddressList As String

            For Each myIPAddress In myIPAddresses

                Console.WriteLine(myIPAddress.ToString)

            Next
        Catch ex As SocketException
            Console.WriteLine(ex.Message)
        End Try

    End Sub
End Class

How to Get Host Name and IP Address in VB.Net

เป็นเรื่องที่เกี่ยวกับ DNS ดังนั้นเราต้องทำการ Imports Class ที่เกี่ยวกับ DNS ซะก่อนดัง code ด้านล่าง

Imports System.Net.Dns

สมาชิกของ class DNS มีดังนี้
BeginGetHostAddresses(Hostname or Address as string)
BeginGetHostByName
BeginGetHostEntry
BeginResolveEndGetHostAddresses
EndGetHostByName
EndGetHostEntry
EndResolve
GetHostAddresses
GetHostByName
GetHostEntry
GetHostName - แสดงชื่อเครื่องของ Host
Resolve

IPHostEntry - Initializes a new instance of the IPHostEntry class.

Ex
Dim hostInfo As IPHostEntry = Dns.GetHostByName(http://www.contoso.com/)


For Each (ตัวแปร)  in (ชื่ออาเรย์)
(ชุดคำสั่ง)
Next
วนลูปจนค่าเท่ากับอาเรย์