如何获取本机所有网卡上所有的IP?

wangkiyo 2006-08-19 04:20:52
先前有一个帖子上的方法可以取得所有的网卡上的IP,不过每个网卡只能取得到一个IP,并不能取所有的IP,如果我一个网卡绑定多个IP便只能取一个.

求:获取所有网卡上所有IP的方法.
...全文
333 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangkiyo 2006-08-24
  • 打赏
  • 举报
回复
OK,不错,谢谢
结帖.
zsj1101 2006-08-20
  • 打赏
  • 举报
回复
Rem 測試目前設備上所使用的 IP 地址
Rem 設定在您的計算機上﹐最多可能使用 10 組 IP 地址﹐并且用來產生緩存區
Private Const MAX_IP = 10
Private Type IPINFO
dwAddr As Long 'IP地址
dwNICIndex As Long 'NIC界面
dwSubnetMask As Long '子網掩碼
dwBroadCastAddr As Long '廣播地址
dwReAssemblySize As Long '組大小
unused1 As Integer '暫不使用
unused2 As Integer '暫不使用
End Type

Private Type MIB_IPADDRTABLE
dwEntrys As Long '窗體中登錄的數目
arIPInfo(MAX_IP) As IPINFO 'IP地址隊列
End Type

Private Type IP_Array
mBuffer As MIB_IPADDRTABLE 'IP地址清單
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

' 將長整數轉換為字符串
Public Function ConvertAddr2Str(LongAddress As Long) As String
Dim addrByte(3) As Byte
Dim Cnt As Long
CopyMemory addrByte(0), LongAddress, 4
For Cnt = 0 To 3
ConvertAddr2Str = ConvertAddr2Str + CStr(addrByte(Cnt)) + "."
Next Cnt
ConvertAddr2Str = Left$(ConvertAddr2Str, Len(ConvertAddr2Str) - 1)
End Function

Private Sub Form_Load()
Start
End Sub

Private Sub Start()
Dim lRet As Long
Dim I As Long
Dim Buffer() As Byte
Dim ListDatas As MIB_IPADDRTABLE
Text1 = ""
On Error GoTo Errors
GetIpAddrTable ByVal 0&, lRet, True
If lRet <= 0 Then Exit Sub
ReDim Buffer(0 To lRet - 1) As Byte
'取回 IP 地址的相關數據
GetIpAddrTable Buffer(0), lRet, False
'利用已經安裝 IP 地址的前四個字節﹐來取得登錄的信息
CopyMemory ListDatas.dwEntrys, Buffer(0), 4
Text1 = "在您的計算機上﹐共有" & ListDatas.dwEntrys & "組已經設定使用的 IP 地址" & vbCrLf
Text1 = Text1 & String(45, "=") & vbCrLf
For I = 0 To ListDatas.dwEntrys - 1
'將存在內存之中的地址結構﹐復制到清單之中
CopyMemory ListDatas.arIPInfo(I), Buffer(4 + (I * Len(ListDatas.arIPInfo(0)))), Len(ListDatas.arIPInfo(I))
Text1 = Text1 & "IP地址 " & ConvertAddr2Str(ListDatas.arIPInfo(I).dwAddr) & vbCrLf
Text1 = Text1 & "IP子網掩碼 " & ConvertAddr2Str(ListDatas.arIPInfo(I).dwSubnetMask) & vbCrLf
Text1 = Text1 & "IP廣播地址 " & ConvertAddr2Str(ListDatas.arIPInfo(I).dwBroadCastAddr) & vbCrLf
Text1 = Text1 & String(45, "*") & vbCrLf & vbCrLf
Next
Exit Sub
Errors:
End Sub

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧