Iphlpapi获取网络信息一
Iphlpapi获取网络信息一第一章前言
第二章主要函数
第一节获取本机网络适配器的信息GetAdaptersInfo
第二节获取MIB-II接口表GetIfTable
第三节获取本机TCP信息列表GetTcpStatistics
第四节获取当前TCP连接情况GetTcpTable
第五节获取本机UDP信息列表GetUdpStatistics
第六节获取当前UDP连接情况GetUdpTable
第七节获取本机网间控制报文协议信息GetIcmpStatistics
第八节获取本机网络参数GetNetworkParams
第九节获取网卡– IP地址映射表GetIpAddrTable
第十节获取本机已探测的IP–物理地址映射表GetIpNetTable
第十一节获取当前计算机的IP信息GetIpStatistics
第十二节获得本机系统网络接口适配器的列表GetInterfaceInfo
第十三节获得目的地IP(只能是所在局域网中的IP)对应的物理地址SendARP
第十四节返回本机网络接口数量GetNumberOfInterfaces
第十五节设置本机默认的生存时间(time-to-live:TTL)值SetIpTTL
第十六节获取本机IP路由表GetIpForwardTable
第十七节设置TCP连接状态SetTcpEntry
第十八节在本地电脑的地址解析协议(ARP:Address Resolution Protocol)表中创建和删除一个ARP CreateIpNetEntry
第十九节Ping一个IP地址IcmpCreateFile.
第二十节测定到指定目的地往返时间和跳跃数
第二十一节增加和删除一个IP地址
第三章IPHLPAPI的其他函数
第一节IPHLPAPI的其它函数
第二节从C原型到Vb声明
第四章错误处理及其它
第一节错误处理
第二节一个重要函数
第三节实例一:网络数据流量图
第四节实例二:探测到某个IP地址经过的路由列表
第五章结束语
第一章前言
Windows 98以上的操作系统在系统目录下都带有iphlpapi.dll这个动态
链接库文件,它可以帮助程序员方便地获取计算机网络信息。对于C程序员来说,只要有iphlpapi的头文件,调用iphlpapi.dll是很简单的事,但是对于
Vb程序员则是比较困难的问题。本文将就Vb中调用iphlpapi.dll来介绍iphlpapi的使用。
第二章IPHLPAPI的主要函数
本章将根据iphlpapi.dll提供函数的功能来分别讲解iphlpapi.dll的主要函数。编程时,我们可以调用这些函数迅速获得本机大部分网络信息。
第一节获取本机网络适配器的信息
1、函数:
Private Declare Function GetAdaptersInfo
Lib"iphlpapi.dll"(IpAdapterInfo As Any,pOutBufLen As Long)As Long
参数说明:
pAdapterInfo:[输出]指向一个IP_ADAPTER_INFO类型的连接表;
pOutBufLen:[输入]指定pAdapterInfo参数的大小,如果指定大小不足,GetAdaptersInfo将此参数置为所需大小,并返回一个ERROR_BUFFER_OVERFLOW 错误代码。
返回值:成功,返回0;失败,返回错误代码。
备注:此函数不能获得回环(Loopback)适配器的信息
2、使用到的类型:
①IP_ADAPTER_INFO类型:包含本机网络适配器信息。
Type IP_ADAPTER_INFO Next As Long'在适配器列表中指向下一个适配器
ComboIndex As Long'保留未用
AdapterName As String*MAX_ADAPTER_NAME_LENGTH'适配器名
Description As String*MAX_ADAPTER_DESCRIPTION_LENGTH'对网卡的描述,实际上好象是驱动程序的名字
AddressLength As Long'适配器物理地址的长度
Address(MAX_ADAPTER_ADDRESS_LENGTH-1)As Byte'物理地址,每个字节存放一个十六进制的数值
Index As Long'适配器索引号
Type As Long'适配器类型,包含以下类型的适配器(见下表):
常量名称值说明
MIB_IF_TYPE_ETHERNET 6以太网适配器
MIB_IF_TYPE_TOKENRING 9令牌环适配器
MIB_IF_TYPE_FDDI 15光纤接口适配器
MIB_IF_TYPE_PPP 23点到点协议适配器
MIB_IF_TYPE_LOOPBACK 24回环(Loopback)适配器
MIB_IF_TYPE_SLIP 28串行适配器(Serial Line Interface Protocol)
MIB_IF_TYPE_OTHER其他值其他类型的适配器
DhcpEnabled As Long'适配器是否启用了动态主机配置协议(DHCP)
CurrentIpAddress As Long'保留(当前使用的IP地址?)
IpAddressList As IP_ADDR_STRING'绑定到此适配器的IP地址链表
GatewayList As IP_ADDR_STRING'默认网关地址链表
DhcpServer As IP_ADDR_STRING'DHCP服务器地址,DhcpEnabled=TRUE时
有效
HaveWins As Byte'是否启用WINS(Windows Internet Name Service)
PrimaryWinsServer As IP_ADDR_STRING'主WINS地址
SecondaryWinsServer As IP_ADDR_STRING'辅WINS地址
LeaseObtained As Long'向DHCP服务器租用IP地址的时间,DhcpEnabled=TRUE时有效
LeaseExpires As Long'向DHCP服务器租用IP地址到期时间,DhcpEnabled=TRUE时有效
End Type
②IP_ADDR_STRING描述IP地址链表的节点。
Type IP_ADDR_STRING Next As Long'指向列表中下一个IP_ADDR_STRING
类型。为空,则是最后一个地址
IpAddress As String*16'点式十进制字串表示Ip地址
IpMask As String*16'子网掩码
网络连接被重设
Context As Long'网络IP地址标识,符合AddIPAddress和DeleteIPAddress函数中的网络接口关联参数。
End Type 3、使用到的常量:
Const MAX_ADAPTER_NAME_LENGTH=260 Const
MAX_ADAPTER_ADDRESS_LENGTH=8 Const MAX_ADAPTER_DESCRIPTION_LENGTH=132 4、主要代码分析:
①调用函数GetAdaptersInfo,以及在调用中应该注意的问题:对函数GetAdaptersInfo进行两次调用,第一次调用获得参数pOutBufLen的实际大小;第二次调用获取IpAdapterInfo的数据。代码如下:
pOutBufLen=0 error=GetAdaptersInfo(ByVal 0&,pOutBufLen)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。