可以通过IP获得该机器的机器名,再由机器名获得MAC地址。

解决方案 »

  1.   

    Wingsun请详细一点,最好有code
      

  2.   

    可能涉及到Windows's low-level api. 
      

  3.   

    我前面的回答有问题,正确的答案是:
    typedef struct _ASTAT_
    {
        ADAPTER_STATUS adapt;
        NAME_BUFFER    NameBuff [30];
    }ASTAT, * PASTAT;    ASTAT Adapter;
        NCB ncb;
        UCHAR uRetCode;
        AnsiString MachineName;
        char NetName[50];
        memset( &ncb, 0, sizeof(ncb) );
        ncb.ncb_command = NCBRESET;
        ncb.ncb_lana_num = 0;
        uRetCode = Netbios( &ncb );
        if (uRetCode!=0)
            ShowMessage("网卡初始化失败!");
        memset(&ncb, 0, sizeof(ncb) );
        ncb.ncb_command = NCBASTAT;
        ncb.ncb_lana_num = 0;
        memset(ncb.ncb_callname,' ',NCBNAMSZ);
        MachineName=Edit1->Text.UpperCase();
        strncpy(ncb.ncb_callname,MachineName.c_str(),MachineName.Length());
        ncb.ncb_buffer = (char *) &Adapter;
        ncb.ncb_length = sizeof(Adapter);    uRetCode = Netbios( &ncb );
        if ( uRetCode == 0 )
        {
            AnsiString Address;
            int i;
            Address="";
            for(i=0;i<6;i++)
            {
                Address+=IntToHex((int)Adapter.adapt.adapter_address[i],2);
            }
            ShowMessage(Address);
        }
    //ncb_callname的第一字符是*表示取得本机信息,否则为要获取信息的计算机的机器名或IP地址。机器名必须大写
      

  4.   

    没有必要写这么麻烦的code啊~~
    ping   xxx.xxx.xxx.xxx
    然后
    arp  -a
    就看见啦
      

  5.   

    用以下方法行不行?得到的不是卡号吗?然后给我回一封信好吗?
    GUID guid;
    char address[30];
    if(CoCreateGuid(&guid)!=S_OK)
    MessageBox("Error");
    else
    {
    sprintf(address,
    "%02X-%02X-%02X-%02X-%02X-%02X-%02X-%02X",
    guid.Data4[0],guid.Data4[1],guid.Data4[2],guid.Data4[3],
    guid.Data4[4],guid.Data4[5],guid.Data4[6],guid.Data4[7]);
    address[25] ='\0';
    MessageBox(address);
    }
      

  6.   

    Wingsun的方法是用NetBios在Win9X下实现,能行,在NT下得用别的办法,
    GUID 的办法原理是对的,没试过
      

  7.   

    我的方法在NT下可以,Win9X下也可以。GUID的方法是对的,但是对于没有网卡的机器没有试过,不致对不对。GUID的Data4的最后6位才是网卡号。
      

  8.   

    GUID的方法,我试了,很好,但只能得到本机MAC,
    如何得到其他机器的MAC呢(输入IP)?