x3fang_c 2022-12-01 15:07 采纳率: 8.7%
浏览 16

windows下Dev-C++如何获取本机mac地址?

windows下Dev-C++如何获取本机mac地址?
保存为string格式?

  • 写回答

1条回答 默认 最新

  • Minuw 2022-12-01 15:11
    关注
    
    typedef struct _ASTAT_
    {
        ADAPTER_STATUS adapt;
        NAME_BUFFER NameBuff [30];
    } ASTAT, *PASTAT;
     
    void getMac(char * mac)
    {
        ASTAT Adapter;
        NCB Ncb;
        UCHAR uRetCode;
        LANA_ENUM lenum;
        int i = 0;
     
        memset(&Ncb, 0, sizeof(Ncb));
        Ncb.ncb_command = NCBENUM;
        Ncb.ncb_buffer = (UCHAR *)&lenum;
        Ncb.ncb_length = sizeof(lenum);
     
        uRetCode = Netbios( &Ncb );
        printf( "The NCBENUM return adapter number is: %d \n ", lenum.length);
        for(i=0; i < lenum.length ; i++)
        {
            memset(&Ncb, 0, sizeof(Ncb));
            Ncb.ncb_command = NCBRESET;
            Ncb.ncb_lana_num = lenum.lana[i];
            uRetCode = Netbios( &Ncb );
     
            memset(&Ncb, 0, sizeof(Ncb));
            Ncb.ncb_command = 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 );
     
            if (uRetCode == 0)
            {
                //sprintf(mac, "%02x-%02x-%02x-%02x-%02x-%02x ",
                sprintf(mac, "%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]
                );
                //printf( "The Ethernet Number on LANA %d is: %s\n ", lenum.lana[i], mac);
            }
        }
    }
     
    int main(int argc, char *argv[])
    {
        char *mac=new char[32];
        getMac(mac);
        printf( "%s\n ", mac);
        delete[]mac;
        system( "PAUSE> NUL ");
        return 0;
    }
    

    https://blog.csdn.net/dongdan_002/article/details/40890629?ops_request_misc=&request_id=&biz_id=102&utm_term=devc++%E8%8E%B7%E5%8F%96%E6%9C%AC%E6%9C%BAmac%E5%9C%B0%E5%9D%80&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-40890629.142^v67^control,201^v3^add_ask,213^v2^t3_esquery_v1&spm=1018.2226.3001.4187

    评论

报告相同问题?

问题事件

  • 创建了问题 12月1日