获取本机网卡地址(单网卡)

来源:互联网 发布:天子星餐饮软件优缺点 编辑:程序博客网 时间:2024/05/22 14:23

要加入头文件 #include "nb30.h"

AnsiString __fastcall TForm1::GetNetCardNumber()//MAC
{
    typedef   struct   _ASTAT
    {
          ADAPTER_STATUS   adapt;
          NAME_BUFFER   NameBuffer[30];
    }  

ASTAT,   *PASTAT;

    ASTAT   Adapter;
    NCB   ncb;
    UCHAR   uRetCode;
    memset(&ncb,0,sizeof(ncb));
    ncb.ncb_command=NCBRESET;
    ncb.ncb_lana_num=0;
    Netbios(&ncb);
    memset(&ncb,0,sizeof(ncb));
    ncb.ncb_command=NCBASTAT;
    ncb.ncb_lana_num=0;
    strcpy((char   *)ncb.ncb_callname,"*                               ");
    ncb.ncb_buffer=(unsigned   char   *)   &Adapter;
    ncb.ncb_length=sizeof(Adapter);
    uRetCode=Netbios(&ncb);
    AnsiString   str="";
    if(uRetCode==0)
    {
        str.printf("%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]   );
            return   str;
    }
    else
    {
            return   "MAC   Error!";
    }

}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    ShowMessage(GetNetCardNumber());