wince获得mac地址(需要连接网络或路由器)

来源:互联网 发布:橡胶木 知乎 编辑:程序博客网 时间:2024/05/18 01:48
#include "stdafx.h"
#include "ipexport.h" 
#include <windows.h>  
#include <stdio.h>  
#include <tchar.h>  
#include <iphlpapi.h> 
#include "Winsock2.h"
//需要链接 ws2_32.lib & iphlpapi.lib



int _tmain()  
{  
HRESULT hr;  
IPAddr  ipAddr;  
ULONG   pulMac[2];  
ULONG   ulLen;  
ipAddr = inet_addr ("192.168.1.100");//设备自身的ip  
memset (pulMac, 0xff, sizeof (pulMac));  
ulLen = 6;  


hr = SendARP (ipAddr, 0, pulMac, &ulLen);  
printf ("Return %08x, length %8d/n", hr, ulLen);  


size_t i, j;  
char * szMac = new char[ulLen*3];  
PBYTE pbHexMac = (PBYTE) pulMac;  
//  
// Convert the binary MAC address into human-readable  
//  
for (i = 0, j = 0; i < ulLen - 1; ++i)
{  
j += sprintf (szMac + j, "%02X:", pbHexMac[i]);  
}  


sprintf (szMac + j, "%02X", pbHexMac[i]);  
printf ("MAC address %s/n", szMac); 
int a;
scanf("%d",&a);


delete [] szMac;  
return 0;  



//BOOL GetMac(CHAR *IpAddr, BYTE *MacAddr)
//{
// CHAR macAddr[13]={0};
// IPAddr  ipAddr;
// ULONG   Mac[2];
// ULONG   MacLen;
//
// memset (Mac, 0xff, sizeof (Mac));
// MacLen = 6;
// ipAddr=inet_addr(IpAddr);
// DWORD hr = SendARP (ipAddr, 0, Mac, &MacLen);
// if(hr==0)
// {
// PBYTE  pbMac = (PBYTE)Mac;
// for (ULONG i=0;i<MacLen;i++)
// {
// MacAddr[i]=pbMac[i];
// }
// }
// else
// {
// return FALSE;
// }
// return TRUE;
//}
//int _tmain(int argc, char* argv[])
//{
// CHAR IpAddr[16]="192.168.1.102";
// BYTE MacAddr[6]="";
// CHAR szMacAddr[18]="";
// GetMac(IpAddr,MacAddr);
// sprintf(szMacAddr,"%02X:%02X:%02X:%02X:%02X:%02X",
// MacAddr[0],MacAddr[1],MacAddr[2],MacAddr[3],MacAddr[4],MacAddr[5]);
// printf ("MAC address %s.\n", szMacAddr); 
// int a;
// scanf("%d",&a);
// return 0;
//}
0 0
原创粉丝点击