65,189
社区成员




#include <stdio.h>
#include <winsock2.h>
#include <windows.h>
#include <iphlpapi.h>
#include <tchar.h>
#pragma comment(lib, "Ws2_32" )
#pragma comment(lib, "iphlpapi.lib")
int main()
{
HRESULT hr;
IPAddr remoteAddr;
ULONG pulMac[2];
ULONG ulLen;
remoteAddr = inet_addr ("10.86.3.6");
memset (pulMac, 0xFF, sizeof (pulMac));
ulLen = 6;
hr = SendARP (remoteAddr, 0, pulMac, &ulLen);
printf ("Return %08x, length %8d, Mac %08x %08x\n", hr, ulLen, pulMac[0], pulMac[1]);
size_t i, j;
char * szMac = new char[ulLen * 3];
memset(szMac, 0, ulLen*3);
PBYTE pbHexMac = (PBYTE) pulMac;
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);
delete [] szMac;
return 0;
}