您的位置:首页 > 其它

获取本地MAC地址和多IP

2014-11-19 21:04 369 查看
#include<atlbase.h>
#include<atlconv.h>
#include"iphlpapi.h"
#pragma comment(lib,"Iphlpapi.lib")
void Get_IP()
{
PIP_ADAPTER_INFO pAdapterInfo;
PIP_ADAPTER_INFO pAdapter = NULL;
DWORD dwRetVal = 0;
pAdapterInfo = (IP_ADAPTER_INFO*)malloc(sizeof(IP_ADAPTER_INFO));
ULONG ulOutBufLen = sizeof(IP_ADAPTER_INFO);
if (GetAdaptersInfo(pAdapterInfo, &ulOutBufLen) != ERROR_SUCCESS){
//GlobalFree(pAdapterInfo);
pAdapterInfo = (IP_ADAPTER_INFO*)malloc(ulOutBufLen);
}
if ((dwRetVal = GetAdaptersInfo(pAdapterInfo, &ulOutBufLen)) == NO_ERROR){
pAdapter = pAdapterInfo;
while (pAdapter){
if (strstr(pAdapter->Description, "PCI")>0//pAdapter->Description中包含"PCI"为:物理网卡
|| pAdapter->Type == 71//pAdapter->Type是71为:无线网卡
){
printf("------------------------------------------------------------\n");
printf("网卡名称:\t%s\n", pAdapter->AdapterName);
printf("网卡描述:\t%s\n", pAdapter->Description);
printf("Gateway:\t%s\n", pAdapter->GatewayList.IpAddress.String);
printf("网卡MAC地址:\t");
for (UINT i = 0; i<pAdapter->AddressLength; i++){
printf("%02X%c", pAdapter->Address[i],
i == pAdapter->AddressLength - 1 ? '\n' : '-');
}

printf("网卡类型(71为无线网卡,6为物理网卡):\t%d\n", pAdapter->Type);
printf("IP地址:\t%s\n", pAdapter->IpAddressList.IpAddress.String);
printf("子网掩码:\t%s\n", pAdapter->IpAddressList.IpMask.String);
}
pAdapter = pAdapter->Next;
}
}
else
{
printf("Call to Get Adapters Information failed\n");
}
}

void main()
{
Get_IP();
}

http://blog.csdn.net/l00109503/article/details/4044189
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: