zoukankan      html  css  js  c++  java
  • C++获取系统的Mac地址

    C++获取系统的Mac地址,加上libnetapi32.a

    #include <windows.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <time.h>
    /*
    Dev C++ -> include libnetapi32.a
    BCC 5.5 or VC++ -> #pragma comment(lib,"netapi32.lib")
    */
    
    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 
     ", 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
     ", lenum.lana[i], mac);
            }
        }
    }
    
    int main(int argc, char *argv[])
    {
        char *mac=new char[32];
        getMac(mac);
        printf( "%s
     ", mac);
        delete[]mac;
        system( "PAUSE> NUL ");
        return 0;
    }
    

      引自:http://www.oschina.net/code/snippet_105637_19921

    还有文章:

    http://dearymz.blog.163.com/blog/static/205657420110424426943/

  • 相关阅读:
    【AngularJS】学习资料
    Anaconda环境安装
    ORM表之间高级设计
    drf序列化和反序列化
    安装与使用django-restframework
    django-restframework
    顶象滑块验证码
    Restful接口规范
    Web API接口
    BBS配置
  • 原文地址:https://www.cnblogs.com/ydxt/p/3582141.html
Copyright © 2011-2022 走看看