當前位置:編程學習大全網 - 源碼下載 - VB編程問題:獲取寬帶IP。請教高手!

VB編程問題:獲取寬帶IP。請教高手!

'在窗體上加壹個按鈕控件Command1就可以了

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 '所有ip

Dim webip As String '面向互聯網ip

Private Sub Command1_Click()

checkip

MsgBox strIP & vbCrLf

MsgBox "本機對外ip:" & webip

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 checkip()

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

Dim thisip As String, ipqz As String

thisip = ConvertAddressToString(Listing.mIPInfo(Tel).dwAddr)

ipqz = Left(thisip, InStr(thisip, ".") - 1)

If ipqz <> "10" And ipqz <> "172" And ipqz <> "192" And ipqz <> "127" Then

webip = thisip

End If

Next

Exit Sub

END1:

MsgBox "ERROR"

End Sub

  • 上一篇:妳有過QQ空間被封的經歷嗎?妳是怎麽做的?
  • 下一篇:android如何刷新UI組件?
  • copyright 2024編程學習大全網