您的位置:首页 > 其它

windows 平台下获取网卡的Mac地址

2014-07-14 13:37 288 查看
// mac.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

#include<atlbase.h>

#include<atlconv.h>

#include"iphlpapi.h"

# pragma comment(lib,"Iphlpapi.lib")

int _tmain(int argc, _TCHAR* argv[])

{

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;

int count = 0;

while(pAdapter){

printf("AdapterAddr:%s \n",pAdapter->Description);

// if(strstr(pAdapter->Description,"PCI")>0//pAdapter->Description???"PCI"??????//pAdapter->Type?71??????

// ||pAdapter->Type==71

// )

if(pAdapter->Type > 0)

{

printf("------------------------------------------------------------\n");

// printf("AdapterName:\t%s\n",pAdapter->AdapterName);

// printf("AdapterDesc:\t%s\n",pAdapter->Description);

char *tempMac = new char[40];

memset(tempMac,0,40);

printf("AdapterAddr:\t");

for(UINT i=0;i<pAdapter->AddressLength;i++){

char *subMac = new char[10];

sprintf(subMac,"%02X%c",pAdapter->Address[i],

i==pAdapter->AddressLength-1? '\n':'-');

strcat(tempMac,subMac);

}

printf("tempMac = %s",tempMac);

// printf("AdapterType:\t%d\n",pAdapter->Type);

// printf("IPAddress:\t%s\n",pAdapter->IpAddressList.IpAddress.String);

// printf("IPMask:\t%s\n",pAdapter->IpAddressList.IpMask.String);

}

pAdapter=pAdapter->Next;

}

}

else

{

printf("Call to Get Adapters Information failed\n");

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: