怎么没有人用个这种协议吗?

解决方案 »

  1.   

    在微软网站上的MSDN上有这方面的内容,如SendArp(...)有以下例子
    //
    // 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 ("216.145.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;
    }