同上!再说的具体一点:我要在一台具有双网卡的机器上分别获取那块对内的网卡的IP地址和对外的那块网卡的IP地址。请不要用WINSOCK控件,我想知道有没有什么API或者其他函数可以实现这个功能。谢谢!UP有分!
解决方案 »
- Vb做一个试题库系统,要求试题录入调用word里的编辑功能,试卷输出到word中,给个思路吧
- 在vb中如何以追加的方式写入文件并且存成unicode格式的文本文件
- 如何用代码导出IE的收藏夹
- 如何适应屏幕的分辩率?求救!!!!
- 如何向一个特殊地址发送一个特殊的指令呢?很急的,请教
- 如何取得数据库的名称?
- 哪位高手解释一下中间件、句柄的含义?
- 小问题:程序运行时,如何通过程序的菜单在窗体上创建一个image控件?
- vb 上实时错误13是什么问题
- **************一个关于用ADO返回记录总数的小问题,快来那分啦!!!!!*************
- 求购用winsock接收邮件(带附件),快!急!!!!(版主帮帮忙!!!)
- 关于如何调用水晶报表crystal report8.0 ?万分着急!一定给分!
ByRef pdwSize As Long, ByVal bOrder As Long) 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 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 TypePrivate 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
为什么上面的程序我运行后,告诉我,我有4个IP地址,我只有两个网卡啊!能告诉我为什么么?谢谢!