// // Link with ws2_32.lib and iphlpapi.lib //
#include #include #include #include
int __cdecl main() { HRESULT hr; IPAddr ipAddr; ULONG pulMac[2]; ULONG ulLen;
ipAddr = inet_addr ("192.168.0.1"); 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); }
sprintf (szMac + j, "%02X", pbHexMac); printf ("MAC address %s\n", szMac);
delete [] szMac;
return 0; }
|