不一定得到,如果该域名没有登记反向查询纪录你就查不到

解决方案 »

  1.   

    是在同一个局域网中间得计算机!
      

  2.   

    调用 GetHostNameFromIP() 函数。
    --------------------------------------------------------------------
    Private Const WSADescription_Len As Long = 256
    Private Const WSASYS_Status_Len As Long = 128
    Private Const WS_VERSION_REQD As Long = &H101
    Private Const IP_SUCCESS As Long = 0
    Private Const SOCKET_ERROR As Long = -1
    Private Const AF_INET As Long = 2Private Type WSADATA
      wVersion As Integer
      wHighVersion As Integer
      szDescription(0 To WSADescription_Len) As Byte
      szSystemStatus(0 To WSASYS_Status_Len) As Byte
      imaxsockets As Integer
      imaxudp As Integer
      lpszvenderinfo As Long
    End TypePrivate Declare Function WSAStartup Lib "wsock32.dll" (ByVal VersionReq As Long, WSADataReturn As WSADATA) As Long
    Private Declare Function WSACleanup Lib "wsock32.dll" () As Long
    Private Declare Function inet_addr Lib "wsock32.dll" (ByVal s As String) As Long
    Private Declare Function gethostbyaddr Lib "wsock32.dll" (haddr As Long, ByVal hnlen As Long, ByVal addrtype As Long) As Long
    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (xDest As Any, xSource As Any, ByVal nbytes As Long)
    Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (lpString As Any) As Long
      
    Private Function SocketsInitialize() As Boolean
    Dim WSAD As WSADATA
        SocketsInitialize = WSAStartup(WS_VERSION_REQD, WSAD) = IP_SUCCESS
    End FunctionPrivate Sub SocketsCleanup()
        If WSACleanup() <> 0 Then
            MsgBox "Windows Sockets error occurred in Cleanup.", vbExclamation
        End If
    End SubPublic Function GetHostNameFromIP(ByVal sAddress As String) As String
    Dim ptrHosent As Long
    Dim hAddress As Long
    Dim nbytes As Long
        If SocketsInitialize() Then
            hAddress = inet_addr(sAddress)
            If hAddress <> SOCKET_ERROR Then
                ptrHosent = gethostbyaddr(hAddress, 4, AF_INET)
                If ptrHosent <> 0 Then
                    CopyMemory ptrHosent, ByVal ptrHosent, 4
                    nbytes = lstrlen(ByVal ptrHosent)
                    If nbytes > 0 Then
                        sAddress = Space$(nbytes)
                        CopyMemory ByVal sAddress, ByVal ptrHosent, nbytes
                        GetHostNameFromIP = sAddress
                    End If
                Else
                    GetHostNameFromIP = "Error"
                End If
                SocketsCleanup
            Else
                GetHostNameFromIP = "Error"
            End If
        Else
            GetHostNameFromIP = "Error"
        End If
    End Function