获取不到机子上所有MAC
但COM里面ipconfig /all又有两个MAC
一个是MAC全是00,
在其他机子上获取MAC正常(获取多个连接一样获取得到)

在线等

解决方案 »

  1.   

    没有
    我是先列出了所有网卡
    再一个一个获取MAC的
      

  2.   

    ASTAT Adapter;
        NCB ncb;
        UCHAR uRetCode;
     
        memset(&ncb, 0, sizeof(ncb));
        ncb.ncb_command = NCBRESET;
        ncb.ncb_lana_num = 0;
     
        uRetCode = Netbios(&ncb);
     
        memset(&ncb, 0, sizeof(ncb));
        ncb.ncb_command = NCBASTAT;
        ncb.ncb_lana_num = 0; char name[155]; PHOSTENT hostinfo; 
    { LANA_ENUM   lana_enum;  ncb.ncb_command   =   NCBENUM;         ncb.ncb_buffer = (unsigned char *) &lana_enum;//Adapter;
        ncb.ncb_length = sizeof(Adapter);
     
        uRetCode = Netbios(&ncb);
        CString sMacAddress; 
        if (uRetCode == 0)
        {
    int num   =   lana_enum.length;   
      //对每一张网卡,以其网卡编号为输入编号,获取其MAC地址     
    for   (int   i   =   0;   i   <   num;   i++)   
    {   
    memset(&ncb, 0, sizeof(ncb) );
    ncb.ncb_command = NCBRESET;
    ncb.ncb_lana_num = lana_enum.lana[i];
    //指定网卡号,首先对选定的网卡发送一个NCBRESET命令,以便进行初始化
    uRetCode = Netbios(&ncb );
    memset(&ncb, 0, sizeof(ncb) );
    ncb.ncb_command = NCBASTAT;
    ncb.ncb_lana_num = lana_enum.lana[i];   //指定网卡号
    strcpy((char *)ncb.ncb_callname,"*");
    memset(&Adapter,0,sizeof(Adapter));
    ncb.ncb_buffer = (unsigned char *)&Adapter;
    //指定返回的信息存放的变量
    ncb.ncb_length = sizeof(Adapter);
    //接着,可以发送NCBASTAT命令以获取网卡的信息
    uRetCode = Netbios(&ncb );
    if(uRetCode==0)
    {
    sMacAddress.Format(_T("%02x:%02x:%02x:%02x:%02x:%02x"),
             Adapter.adapt.adapter_address[0],
                Adapter.adapt.adapter_address[1],
                Adapter.adapt.adapter_address[2],
                Adapter.adapt.adapter_address[3],
                Adapter.adapt.adapter_address[4],
                Adapter.adapt.adapter_address[5]);
    m_combomac.AddString(sMacAddress);
    }
    }
        }
    这就是我获取MAC的代码
      

  3.   

    http://blog.csdn.net/biweilun/archive/2009/04/20/4093316.aspx
      

  4.   

    ?LZ的含义不是很明确o
    获取不到所有MAC?
    按你的方法所有网卡获取到了么?
    一步步查
      

  5.   

    先确定是否有虚拟机,然后你确定你是否有多张网卡.如果一张网卡并且没有虚拟机的话,应该只有一个mac地址的
      

  6.   

    用GetAdaptersInfo获得所有网卡信息逐一遍历
      

  7.   

    他是用MALATA MAE-301U连接网络的
    还有我看了下他那网卡信息好象驱动不完整
    没有高级和资源项