Client: Included in Windows XP and Windows 2000 Professional. Server: Included in Windows Server 2003 and Windows 2000 Server. Header: Declared in Iphlpapi.h. Library: Use Iphlpapi.lib.
// // Link with ws2_32.lib and iphlpapi.lib //#include <windows.h> #include <stdio.h> #include <tchar.h> #include <iphlpapi.h> int __cdecl main() { HRESULT hr; IPAddr ipAddr; ULONG pulMac[2]; ULONG ulLen; ipAddr = inet_addr ("192.168.25.31"); memset (pulMac, 0xff, sizeof (pulMac)); ulLen = 6;
Server: Included in Windows Server 2003 and Windows 2000 Server.
Header: Declared in Iphlpapi.h.
Library: Use Iphlpapi.lib.
// Link with ws2_32.lib and iphlpapi.lib
//#include <windows.h>
#include <stdio.h>
#include <tchar.h>
#include <iphlpapi.h>
int __cdecl main()
{
HRESULT hr;
IPAddr ipAddr;
ULONG pulMac[2];
ULONG ulLen; ipAddr = inet_addr ("192.168.25.31");
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);
delete [] szMac; return 0;
}
这个应该在微软网站上可以下载(呵呵,我没有下过,我是买的光盘)。
手把手教你玩转arp系列