在vb中使用Iphlpapi.dll获取网络信息 第二章 第九节 获取网卡–IP地址映射表
来源:互联网 发布:淘宝的nmd都是真货吗 编辑:程序博客网 时间:2024/06/07 13:45
※==================================================================
※本连载文章说明:
※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);
※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;
※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;
※4、谢绝任何收费媒体、网络转载;
※5、原作者:uruseibest ,blog:http://blog.csdn.net/uruseibest;
※6、如有其它疑问,请联系作者;
※7、如有转载,必须连同本说明一并发表,否则将追究转载者责任。
※======================================================================
第九节 获取网卡–IP地址映射表
1、函数:
Private Declare Function GetIpAddrTable Lib "iphlpapi.dll" (pIpAddrTable As MIB_IPADDRTABLE, pdwSize As Long, bOrder As Long) As Long
参数说明:
pIpAddrTable:[输出] 指向一个接收网卡–IP地址映射表的 MIB_IPADDRTABLE类型的指针。
pdwSize:[输入,输出]输入,指定pIpAddrTable 参数指向缓存的大小;输出,如果指定的缓存大小不够大,将设置此参数为必须的大小。
bOrder:[输入] 指定返回的映射表是否按照IP地址排列。TRUE,按顺序排列。
返回值:成功,返回0;失败,返回错误代码。
2、使用到的类型:
①MIB_IPADDRTABLE 包含IP地址入口表
Type MIB_IPADDRTABLE
dwNumEntries As Long '表明table字段数组中有多少MIB_IPADDROW条目
table() As MIB_IPADDRROW '指向MIB_IPADDRROW类型
End Type
②MIB_IPADDRROW 指定特殊IP地址的信息
Type MIB_IPADDRROW
dwAddr As Long '接口的IP地址
dwIndex As Long '与IP地址关联的接口之索引
dwMask As Long '子网掩码
dwBCastAddr As Long ’广播地址
dwReasmSize As Long '已收到的数据报重装后的最大长度
unused1 As Integer '未使用
unused2 As Integer '未使用
End Type
3、使用到的常量:
无
4、主要代码分析:
①定义一个MIB_IPADDRTABLE类型的变量并获取此变量的大小,然后直接调用GetTcpTable:
Dim IpAddrTable As MIB_IPADDRTABLE
dwsize = Len(IpAddrTable)
r = GetIpAddrTable(IpAddrTable, dwsize, order)
②调用For…Next循环,获取每个网卡–IP地址映射的信息:
For i = 0 To IpAddrTable.dwNumEntries - 1
Print "dwAddr", IpAddrTable.table(i).dwAddr
Next
③将长整型格式的ip地址转换为标准IP地址格式("xxx.xxx.xxx.xxx"格式):
Private Function inversaip(IPAddrLng As Long) As String
Dim sos As String
Dim i As Long
Dim IPadd As String
IPadd = Right("00000000" & Hex(IPAddrLng), 8)
sos = ""
For i = 1 To Len(IPadd) Step 2
sos = CInt("&h" & Mid(IPadd, i, 2)) & "." & sos
Next i
inversaip = Mid(sos, 1, Len(sos) - 1)
End Function
5、运行时截图:
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第九节 获取网卡–IP地址映射表
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第九节 获取网卡–IP地址映射表
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十节 获取本机已探测的IP – 物理地址映射表
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十节 获取本机已探测的IP – 物理地址映射表
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第二十一节 增加和删除一个IP地址
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第二十一节 增加和删除一个IP地址
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十九节 Ping一个IP地址
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十九节 Ping一个IP地址
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十六节 获取本机IP 路由表
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十六节 获取本机IP 路由表
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十一节 获取当前计算机的IP信息
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十一节 获取当前计算机的IP信息
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第二节 获取MIB-II 接口表
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第二节 获取MIB-II 接口表
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十三节 获得目的地IP对应的物理地址
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十三节 获得目的地IP对应的物理地址
- 在vb中使用Iphlpapi.dll获取网络信息 第四章 第二节 一个重要函数
- 在vb中使用Iphlpapi.dll获取网络信息 第四章 第二节 一个重要函数
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第七节 获取本机网间控制报文协议(ICMP)信息
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第八节 获取本机网络参数
- 配置JBoss 4.0.5 的SSL
- n*n按行按列升序矩阵中找数问题
- 有趣的SQL(如何去掉一个最高分,一个最低分)
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第九节 获取网卡–IP地址映射表
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十节 获取本机已探测的IP – 物理地址映射表
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十一节 获取当前计算机的IP信息
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十二节 获得本机系统网络接口适配器的列表
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十三节 获得目的地IP对应的物理地址
- J2EE包括以下技术: 技术术语
- 分治算法对任意的n值构造相应的格雷码
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十四节 返回本机网络接口数量
- 勿在重定向的href中定义onclick事件