本文中, 我们来看看如何利用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, 是为了去掉编译warning
for(i = 0; i < pAdapter->AddressLength; i+