如何获取网卡相关信息(包括mac, ip, mask, gateway等)?---利用GetAdaptersInfo
来源:互联网 发布:jansport淘宝 编辑:程序博客网 时间:2024/05/16 15:06
本文中, 我们来看看如何利用GetAdaptersInfo获取与网卡相关的一些信息。 如果你在运行的时候缺头文件或者库, 请到网上下载, 也可以直接在我的博客资源中下载, 免积分。其实, 这个函数中的Adapter就是指网卡。
好, 上代码(为了简便,不考虑各种异常):
#include <stdio.h> #include <winsock2.h> #include <iphlpapi.h> // 如果没有这个, 请在我的博客资源中下载#pragma comment(lib, "iphlpapi.lib") int main(){unsigned long len = sizeof(IP_ADAPTER_INFO);IP_ADAPTER_INFO *pAdapterInfo = (IP_ADAPTER_INFO *)malloc(sizeof(IP_ADAPTER_INFO));GetAdaptersInfo(pAdapterInfo, &len); // 获取链表指针值的关键函数PIP_ADAPTER_INFO pAdapter = pAdapterInfo;while(pAdapter) // 遍历链表{printf("NIC: %s\n", pAdapter->AdapterName);printf("NIC info: %s\n", pAdapter->Description);printf("\n");printf("MAC: ");unsigned int i = 0; // 不用int, 是为了去掉编译warningfor(i = 0; i < pAdapter->AddressLength; i++){if(i == (pAdapter->AddressLength - 1)){printf("%.2X\n", (int)pAdapter->Address[i]);}else{printf("%.2X:", (int)pAdapter->Address[i]);}}printf("IP: %s\n", pAdapter->IpAddressList.IpAddress.String);printf("Mask: %s\n", pAdapter->IpAddressList.IpMask.String);printf("Gateway: %s\n", pAdapter->GatewayList.IpAddress.String);printf("\n");if(pAdapter->DhcpEnabled){printf("DHCP: YES\n");printf("DHCP Server: %s\n", pAdapter->DhcpServer.IpAddress.String);}else{printf("DHCP: NO\n");}pAdapter = pAdapter->Next; // 下一个网卡}free(pAdapterInfo);printf("\n");return 0;}结果是(我用xx代替了部分信息):
NIC: {xxxxxxxxxxx-xxxx-xxxxx-xxxx-xxxxxxxxxxxx}
NIC info: Dell Wireless 1395 WLAN Mini-Card - 数据包计划程序微型端口
MAC: xx:xx:xx:xx:xx:xx
IP: 192.168.1.100
Mask: 255.255.255.0
Gateway: 192.168.1.1
DHCP: YES
DHCP Server: 192.168.1.1
如果把我PC的无线网络关闭, 那又是另外一种结果, 有兴趣的朋友赶紧试试吧。
备注: 上面的网卡是正在运行的网卡, 而不是所有的网卡。
0 0
- 如何获取网卡相关信息(包括mac, ip, mask, gateway等)?---利用GetAdaptersInfo
- C# System.Net.NetworkInformation 命名空间学习之NetworkInterface 类获取IP,DNS,Gateway,Mask, MAC等网络相关信息
- 获取主机MAC IP Mask Gateway的信息
- 读取网卡信息IP,MAC的GetAdaptersInfo函数
- GetAdaptersInfo 获取网卡配置和Ip地址信息
- 通过GetAdaptersInfo获取网卡MAC
- 如何获取网卡MAC地址(或相关信息)
- QT---Winsocket获取网关(Gateway) 主机IP等信息
- 【转】用GetAdaptersInfo获取网卡信息
- 获取网卡地址 mac or ip or net mask
- 获取网卡信息(网卡MAC,ip,index,devicename)的一般方法(利用IP HELPER api)
- C++ 中通过GetAdaptersInfo获取网卡配置和Ip地址信息
- C++ 中通过GetAdaptersInfo获取网卡配置和Ip地址信息
- C++ 中通过GetAdaptersInfo获取网卡配置和Ip地址信息
- C++ 中通过GetAdaptersInfo获取网卡配置和Ip地址信息
- C++ 中通过GetAdaptersInfo获取网卡配置和Ip地址信息
- C++ 中通过GetAdaptersInfo获取网卡配置和Ip地址信息
- C++ 中通过GetAdaptersInfo获取网卡配置和Ip地址信息
- 在MyEclise中使用自己安装的tomcat
- UIButton setBackgroundColor:ForState
- 【BZOJ 1690】 [Usaco2007 Dec]奶牛的旅行
- NEFU118 n!后面有多少个0【算术基本定理】
- 【Jason's_ACM_解题报告】Assemble
- 如何获取网卡相关信息(包括mac, ip, mask, gateway等)?---利用GetAdaptersInfo
- hihoCoder - 1094 - Lost in the City (暴力枚举!!)
- 边缘断裂处理算法-边缘连接算法
- c中变量在栈中的地址
- codeforces 274B Zero Tree(树形dp)
- 安卓布局属性整理
- Apriori算法的java实现(星星学习笔记)
- iOS捕获异常,常用的异常处理方法
- ACM--steps--2.2.8--第一类stirling数