满意答案
aafsa1266a啊
2013.04.03
采纳率:40% 等级:12
已帮助:6295人
调用 API GetAdaptersInfo 获取本机适配器信息 名称,IP地址,子网掩码,MAC地址 要加载库文件: Iphlpapi.lib #define WIN32_LEAN_AND_MEAN #include #include #include #include #include #include #include #include #include #define MALLOC(x) HeapAlloc(GetProcessHeap(), 0, (x)) #define FREE(x) HeapFree(GetProcessHeap(), 0, (x)) int GetAdapters(void); int main() { GetAdapters(); getch(); } int GetAdapters(void) { PIP_ADAPTER_INFO pAdapterInfo; PIP_ADAPTER_INFO pAdapter = NULL; DWORD dwRetVal = 0; UINT i; char szbuffer[500]; char szmacbuffer[10]; char buffer[32]; ULONG ulOutBufLen = sizeof(IP_ADAPTER_INFO); pAdapterInfo = (IP_ADAPTER_INFO *) MALLOC(sizeof (IP_ADAPTER_INFO)); if (pAdapterInfo == NULL) { return 1; } if (GetAdaptersInfo(pAdapterInfo, &ulOutBufLen) == ERROR_BUFFER_OVERFLOW) { FREE(pAdapterInfo); pAdapterInfo = (IP_ADAPTER_INFO *) MALLOC(ulOutBufLen); if (pAdapterInfo == NULL) { return 1; } } if ((dwRetVal = GetAdaptersInfo(pAdapterInfo, &ulOutBufLen)) == NO_ERROR) { pAdapter = pAdapterInfo; while (pAdapter != NULL) { //printf("\tComboIndex: \t5d\n", pAdapter->ComboIndex); //printf("\tAdapter Name: \t%s\n", pAdapter->AdapterName); printf("Adapter Name: %s\n", pAdapter->Description); printf("Type: "); switch (pAdapter->Type) { case MIB_IF_TYPE_OTHER: printf("Other\n"); break; case MIB_IF_TYPE_ETHERNET: printf("Ethernet\n"); break; case MIB_IF_TYPE_TOKENRING: printf("Token Ring\n"); break; case MIB_IF_TYPE_FDDI: printf("FDDI\n"); break; case MIB_IF_TYPE_PPP: printf("PPP\n"); break; case MIB_IF_TYPE_LOOPBACK: printf("Lookback\n"); break; case MIB_IF_TYPE_SLIP: printf("Slip\n"); break; default: printf("Unknown type %ld\n", pAdapter->Type); break; } printf("IP Address: "); printf("%s\n", pAdapter->IpAddressList.IpAddress.String); printf("SubNet Mask: "); printf("%s\n", pAdapter->IpAddressList.IpMask.String); printf("MAC Address: "); lstrcpy(szbuffer, ""); for (i = 0; i < pAdapter->AddressLength; i++) { if (i == (pAdapter->AddressLength - 1)) wsprintf(szmacbuffer, "%02X", (int) pAdapter->Address[i]); else wsprintf(szmacbuffer, "%02X.", (int) pAdapter->Address[i]); lstrcat(szbuffer, szmacbuffer); } printf("%s\n\n", szbuffer); pAdapter = pAdapter->Next; } } else { ; } if (pAdapterInfo) FREE(pAdapterInfo); return 0; } 文件 ntddndis.h,Iphlpapi.h: http://ds8.fileflyer.com/d%2f5a9f33cf-c5ed-4717-997c-d2dd2544e15b%2fwLBN%2faEIRMBX%2fntddndis.h_Iphlpapi.h.rar
10分享举报