在VB中,怎样才能获得本机的IP地址和网卡类型.
请高人赐教

解决方案 »

  1.   

    获得本机的IP,一下是来自高人的指点,可以帮一下你的忙.
    Option Explicit
    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
    Private Declare Function GetIpAddrTable Lib "IPHlpApi" (pIPAdrTable As Byte, pdwSize As Long, ByVal Sort As Long) As Long
    Dim strIP As String
    Private Const MAX_IP = 255
    Private Type IPINFO
            dwAddr As Long
            dwIndex As Long
            dwMask As Long
            dwBCastAddr As Long
            dwReasmSize As Long
            unused1 As Integer
            unused2 As Integer
    End TypePrivate Type MIB_IPADDRTABLE
            dEntrys As Long
            mIPInfo(MAX_IP) As IPINFO
    End TypePrivate Type IP_Array
            mBuffer As MIB_IPADDRTABLE
            BufferLen As Long
    End Type
       
    Private Function ConvertAddressToString(longAddr As Long) As String
            Dim myByte(3) As Byte
            Dim Cnt As Long
            CopyMemory myByte(0), longAddr, 4
            For Cnt = 0 To 3
            ConvertAddressToString = ConvertAddressToString + CStr(myByte(Cnt)) + "."
            Next Cnt
            ConvertAddressToString = Left$(ConvertAddressToString, Len(ConvertAddressToString) - 1)
    End Function
     
    Public Sub Start()
            Dim Ret As Long, Tel As Long
            Dim bBytes() As Byte
            Dim Listing As MIB_IPADDRTABLE
            On Error GoTo END1
            GetIpAddrTable ByVal 0&, Ret, True
            If Ret <= 0 Then Exit Sub
            ReDim bBytes(0 To Ret - 1) As Byte
            GetIpAddrTable bBytes(0), Ret, False
            CopyMemory Listing.mIPInfo(Tel), bBytes(4 + (Tel * Len(Listing.mIPInfo(0)))), Len(Listing.mIPInfo(Tel))
            localIP = ConvertAddressToString(Listing.mIPInfo(Tel).dwAddr)
            Exit Sub
    END1:
            MsgBox "ERROR"
    End Sub
      

  2.   

    Private Const MAX_IP = 255
        Private Type IPINFO
         dwAddr As Long
         dwIndex As Long
         dwMask As Long
         dwBCastAddr As Long
         dwReasmSize As Long
         unused1 As Integer
         unused2 As Integer
        End Type
        Private Type MIB_IPADDRTABLE
         dEntrys As Long
         mIPInfo(MAX_IP) As IPINFO
        End Type
        Private Type IP_Array
         mBuffer As MIB_IPADDRTABLE
         BufferLen As Long
        End Type
        Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
        Private Declare Function GetIpAddrTable Lib "IPHlpApi" (pIPAdrTable As Byte, pdwSize As Long, ByVal Sort As Long) As Long
        Dim strIP As String
         
        Private Sub main()
         Start
         MsgBox strIP
        End Sub
         
        Private Function ConvertAddressToString(longAddr As Long) As String
         Dim myByte(3) As Byte
         Dim Cnt As Long
         CopyMemory myByte(0), longAddr, 4
         For Cnt = 0 To 3
         ConvertAddressToString = ConvertAddressToString + CStr(myByte(Cnt)) + "."
         Next Cnt
         ConvertAddressToString = Left$(ConvertAddressToString, Len(ConvertAddressToString) - 1)
        End Function
         
        Public Sub Start()
         Dim Ret As Long, Tel As Long
         Dim bBytes() As Byte
         Dim Listing As MIB_IPADDRTABLE
         On Error GoTo END1
         GetIpAddrTable ByVal 0&, Ret, True
         If Ret <= 0 Then Exit Sub
         ReDim bBytes(0 To Ret - 1) As Byte
         GetIpAddrTable bBytes(0), Ret, False
         CopyMemory Listing.dEntrys, bBytes(0), 4
         strIP = "你机子上有 " & Listing.dEntrys & " 个 IP 地址。" & vbCrLf
         strIP = strIP & "------------------------------------------------" & vbCrLf & vbCrLf
         For Tel = 0 To Listing.dEntrys - 1
         CopyMemory Listing.mIPInfo(Tel), bBytes(4 + (Tel * Len(Listing.mIPInfo(0)))), Len(Listing.mIPInfo(Tel))
         strIP = strIP & "IP 地址 : " & ConvertAddressToString(Listing.mIPInfo(Tel).dwAddr) & vbCrLf
         strIP = strIP & "子网掩码 : " & ConvertAddressToString(Listing.mIPInfo(Tel).dwMask) & vbCrLf
         strIP = strIP & "广播地址 : " & ConvertAddressToString(Listing.mIPInfo(Tel).dwBCastAddr) & vbCrLf
         strIP = strIP & "------------------------------------------------" & vbCrLf
         Next
         Exit Sub
    END1:
         MsgBox "ERROR"
        End Sub
      

  3.   

    获得以太网卡的地址:
    http://www.applevb.com/sourcecode/cethernetaddress.zip