在我的程序了,我想ping一台主机,如果通了,我还想同时得到对方主机的MAc地址,我应该用什么方法或函数呀??、

解决方案 »

  1.   

    我的是VC6,我是完全安装的(包括MSDN),但在我机子里找不到IPHlpApi.h文件,为何?
      

  2.   

    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.
      

  3.   

    //
    // 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;
    }
      

  4.   

    必须安装platform sdk,光安装VC是没有这个头文件的。
    这个应该在微软网站上可以下载(呵呵,我没有下过,我是买的光盘)。
      

  5.   

    http://www.csdn.net/Develop/List_Article.asp?KeysWord=&myclassid=&author=&BigClassId=1&myclassName=&doctype=&whichpage=3
    手把手教你玩转arp系列
      

  6.   

    IP Helper里面有个Getxxxx的东西,可以完成命令提示符里arp -a的类似功能