help me

解决方案 »

  1.   

    有啊, 有個MAC號, 是全球唯一的, 一般首選是用網卡號, 有時機器沒裝網卡, 才考慮其它!!
      

  2.   

    怎么取?需要load相应的驱动程序吗?
      

  3.   

    MAC 不是可以改吗?这样恐怕有漏洞.
      

  4.   

    贴段VC代码给你CString m_cstrMacAddr[10]; //保存MAC地址
    int m_iMacTotal = 0;// 获取网卡的MAC地址
    void GetMacAddr()
    {
    NCB Ncb;
    UCHAR uRetCode;
    LANA_ENUM lenum;
    int i ;
    ASTSAT Adapter; memset (&Ncb, 0, sizeof (Ncb)); //初始化Ncb
    Ncb.ncb_command = NCBENUM; //枚举命令
    Ncb.ncb_buffer = (UCHAR*) &lenum;
    Ncb.ncb_length = sizeof (lenum);
    uRetCode = Netbios (&Ncb); //执行Netbios命令 /// 判断网卡个数
    if( lenum.length < 1 )
    {// 获取网卡失败

    /// 记录错误日志
    CString cstrMsg;
    cstrMsg = "[AnyView.exe]获取网卡信息失败!";
    DllRecordErrLog( cstrMsg.operator LPCTSTR() ); return ;
    } for (i =0; i < lenum.length ; i ++) //对每一网卡执行Netbios命令
    {
    memset ( &Ncb, 0, sizeof (Ncb) ); //初始化Ncb
    Ncb.ncb_command = NCBRESET; // NCBRESET命令
    Ncb.ncb_lana_num = lenum.lana[i];
    uRetCode = Netbios (&Ncb); //执行Netbios命令 memset ( &Ncb, 0, sizeof (Ncb) ); //初始化Ncb
    Ncb.ncb_command = NCBASTAT; // NCBASTAT命令
    Ncb.ncb_lana_num = lenum.lana[i];
    strcpy ((char *)Ncb.ncb_callname, "* ");
    Ncb.ncb_buffer = (unsigned char *) &Adapter; 
    Ncb.ncb_length = sizeof(Adapter); 
    uRetCode = Netbios( &Ncb );  printf ("The NCBASTAT on LANA %d return cade is: 0x%x \n", lenum.lana[i], uRetCode); if(uRetCode == 0)
    {
    m_cstrMacAddr[m_iMacTotal++].Format( "%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] );
    }
    }}