有什么函数可以得到本机的子网掩码?

解决方案 »

  1.   

    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 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 SubPrivate Sub Form_Load()
         Start
         MsgBox strIPEnd Sub自己运行一下,里面有。