c语言获取电脑网卡名称
时间: 2023-12-03 21:10:11 浏览: 116
c++获取网卡号
要在C语言中获取电脑网卡名称,可以使用Windows API函数GetAdaptersInfo。这个函数可以返回一个包含所有网络适配器信息的结构体链表,其中每个结构体包含适配器的名称、IP地址、MAC地址等信息。以下是一个简单的示例代码:
```c
#include <stdio.h>
#include <winsock2.h>
#include <iphlpapi.h>
#pragma comment(lib, "IPHLPAPI.lib")
int main()
{
PIP_ADAPTER_INFO pAdapterInfo;
ULONG ulOutBufLen = sizeof(IP_ADAPTER_INFO);
pAdapterInfo = (IP_ADAPTER_INFO *)malloc(sizeof(IP_ADAPTER_INFO));
if (pAdapterInfo == NULL) {
printf("Error allocating memory needed to call GetAdaptersinfo\n");
return 1;
}
// 调用GetAdaptersInfo函数获取适配器信息
if (GetAdaptersInfo(pAdapterInfo, &ulOutBufLen) == ERROR_BUFFER_OVERFLOW) {
free(pAdapterInfo);
pAdapterInfo = (IP_ADAPTER_INFO *)malloc(ulOutBufLen);
if (pAdapterInfo == NULL) {
printf("Error allocating memory needed to call GetAdaptersinfo\n");
return 1;
}
GetAdaptersInfo(pAdapterInfo, &ulOutBufLen);
}
// 遍历适配器链表,输出适配器名称
PIP_ADAPTER_INFO pAdapter = pAdapterInfo;
while (pAdapter) {
printf("Adapter name: %s\n", pAdapter->AdapterName);
pAdapter = pAdapter->Next;
}
free(pAdapterInfo);
return 0;
}
```
注意:这个示例代码只在Windows平台下有效。
阅读全文