cdc 发表于 2002-10-8 10:55:00

网卡MAC读取

如何在VC++中实现!

hothua 发表于 2002-10-9 11:15:00

bool getCardId(char* cardId)
{
      ASTAT Adapter;
      NCB Ncb;
      UCHAR uRetCode;
      
      LANA_ENUM   lenum;
      memset( &Ncb, 0, sizeof(Ncb));
      Ncb.ncb_command = NCBENUM;
      Ncb.ncb_buffer = (UCHAR *)&lenum;
      Ncb.ncb_length = sizeof(lenum);
      uRetCode = Netbios( &Ncb );
    if(uRetCode!=0 || lenum.length<=0)
                return false;
      memset( &Ncb, 0, sizeof(Ncb) );
      Ncb.ncb_command = NCBRESET;
      Ncb.ncb_lana_num = lenum.lana;
      uRetCode = Netbios( &Ncb );
      if(uRetCode!=0 )
                return false;
      memset( &Ncb, 0, sizeof (Ncb) );
      Ncb.ncb_command = NCBASTAT;
      Ncb.ncb_lana_num = lenum.lana;
      strcpy(( char*)Ncb.ncb_callname,"*               " );
      Ncb.ncb_buffer = (unsigned char *) &Adapter;
      Ncb.ncb_length = sizeof(Adapter);
      uRetCode = Netbios( &Ncb );
      if(uRetCode!=0)
                return false;
      sprintf(cardId,"%02x%02x%02x%02x%02x%02x",
          Adapter.adapt.adapter_address,
          Adapter.adapt.adapter_address,
          Adapter.adapt.adapter_address,
          Adapter.adapt.adapter_address,
          Adapter.adapt.adapter_address,
          Adapter.adapt.adapter_address);      
      return true;
}
页: [1]
查看完整版本: 网卡MAC读取