我知道了:pMacAddr指向用户提供的内存区,phyAddrLen指向内存区的大小并返回MAC地址的大小,必须大于等于6,单位是字节。

解决方案 »

  1.   

    #include "iphlpapi.h"//IPHLP支持,需要链接iphlpapi.lib//取得MAC地址
    STATE getmac(char * ip,UCHAR * mac,int maclen)
    {
    if(maclen<6)
    {
    return -1;
    }

    IPAddr destIP;
    DWORD dret;
    ULONG ulen; destIP=inet_addr(ip);
    ulen=maclen;
    if(NO_ERROR==(dret=SendARP(destIP,NULL,(PULONG)mac,&ulen)))
    {
    return 1;//成功则返回
    }
    /* else
    {//显示错误消息
    FormatMessage(
        FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
    NULL,
        dret,
    MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
        str,
        256,
        NULL );
    MessageBox(NULL,str,"",MB_OK);
    }
    */
    //以下使用NetBIOS
    ......