使用iphlpapi.h获得windows下一些基本的网络连接信息
2010-12-25 07:58
363 查看
windows的平台sdk中有一个很重要的iphlpapi.h头文件,它提供了一些非常实用的获取网络信息(网卡、tcp/ip等)的函数:
里面主要的函数主要有:
GetNumberOfInterfaces()获取当前的网络接口数目:注意不是网卡数目,这个相当于你的查看网络连接里面的连接数目+1(本地回路)
GetIfTable()得到所有网络接口的信息(包括网卡信息、收到发出数据量、连接类型、连接状态等)
GetIpAddrTable() GetIpNetTable():获取ip到网络接口、IP到网卡地址的映射
GetTcpTable() GetUdpTable()获取当前的TCP UDP连接状况
GetIpStatistics() GetIcmpStatistics() GetTcpStatistics()GetUdpStatistics() 得到当前各协议的主要参数和信息,此外还有一些相应的set函数
还有关于路由的一些函数
GetAdapterIndex() GetAdaptersInfo() GetAdaptersAddresses():得到关于网卡的信息
AddIPAddress():设置IP
SendARP():发送一个arp请求,获得一个物理地址所对应的IP地址
这里的函数都比较实用,但是一些函数的用法稍微有些奇怪。
如里面很多的函数,以GetIfTable为例,它的定义是
第一个参数为一个接收存储数据的缓存,第二个参数为这片数据的大小
我们直接调用将不知道该将第二个参数设为多少,所以应该先调用一次,将第二个参数设为MIB_IFTABLE结构体的size,这样pdwSize中将返回所需的缓存大小
MIB_IFTABLE* it;
ULONG pdwSize=sizeof(MIB_IFTABLE);
it=(MIB_IFTABLE*)(malloc(sizeof(MIB_IFTABLE)));
GetIfTable(it,&pdwSize,false);free(it);
然后再为数据开辟这么大的缓存再调用一次才行
it=(MIB_IFTABLE*)(malloc(pIfRow));
GetIfTable(it,&pIfRow,false);
free(it);
里面主要的函数主要有:
GetNumberOfInterfaces()获取当前的网络接口数目:注意不是网卡数目,这个相当于你的查看网络连接里面的连接数目+1(本地回路)
GetIfTable()得到所有网络接口的信息(包括网卡信息、收到发出数据量、连接类型、连接状态等)
GetIpAddrTable() GetIpNetTable():获取ip到网络接口、IP到网卡地址的映射
GetTcpTable() GetUdpTable()获取当前的TCP UDP连接状况
GetIpStatistics() GetIcmpStatistics() GetTcpStatistics()GetUdpStatistics() 得到当前各协议的主要参数和信息,此外还有一些相应的set函数
还有关于路由的一些函数
GetAdapterIndex() GetAdaptersInfo() GetAdaptersAddresses():得到关于网卡的信息
AddIPAddress():设置IP
SendARP():发送一个arp请求,获得一个物理地址所对应的IP地址
这里的函数都比较实用,但是一些函数的用法稍微有些奇怪。
如里面很多的函数,以GetIfTable为例,它的定义是
DWORD GetIfTable( __out PMIB_IFTABLE pIfTable, __in_out PULONG pdwSize, __in BOOL bOrder );
第一个参数为一个接收存储数据的缓存,第二个参数为这片数据的大小
我们直接调用将不知道该将第二个参数设为多少,所以应该先调用一次,将第二个参数设为MIB_IFTABLE结构体的size,这样pdwSize中将返回所需的缓存大小
MIB_IFTABLE* it;
ULONG pdwSize=sizeof(MIB_IFTABLE);
it=(MIB_IFTABLE*)(malloc(sizeof(MIB_IFTABLE)));
GetIfTable(it,&pdwSize,false);free(it);
然后再为数据开辟这么大的缓存再调用一次才行
it=(MIB_IFTABLE*)(malloc(pIfRow));
GetIfTable(it,&pIfRow,false);
free(it);
相关文章推荐
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十三节 获得目的地IP对应的物理地址
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十二节 获得本机系统网络接口适配器的列表
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十七节 设置TCP连接状态
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十三节 获得目的地IP对应的物理地址
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第四节 获取当前TCP连接情况
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第四节 获取当前TCP连接情况
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第六节 获取当前UDP连接情况
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第六节 获取当前UDP连接情况
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十七节 设置TCP连接状态
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十二节 获得本机系统网络接口适配器的列表
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十一节 获取当前计算机的IP信息
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第二十一节 增加和删除一个IP地址
- Java网络编程从入门到精通(11):使用NetworkInterface类获得网络接口信息
- 使用ss命令代替netstat 统计TCP网络连接信息
- Java网络编程从入门到精通(11):使用NetworkInterface类获得网络接口信息
- 在vb中使用Iphlpapi.dll获取网络信息 第三章 第一节 IPHLPAPI 的其它函数
- c语言获得网络信息--使用libpcap包
- SharePoint 2013 使用JQuery 一些记录如(SharePoint js 获得当前用户)等基本操作。
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十四节 返回本机网络接口数量