• C++ 获取mac地址


     1 // MacAddress.cpp : Defines the entry point for the console application.
     2 //
     3 
     4 #include "stdafx.h"
     5 #include <windows.h>
     6 #include <wincon.h>
     7 #include <stdlib.h>
     8 #include <stdio.h>
     9 #include <time.h>
    10 #include <Nb30.h>
    11 #pragma comment(lib,"netapi32.lib")  
    12 
    13 int GetMac(char * mac)     
    14 {     
    15     NCB ncb;
    16     typedef struct _ASTAT_
    17     {
    18         ADAPTER_STATUS   adapt;
    19         NAME_BUFFER   NameBuff   [30];
    20     }ASTAT,*PASTAT;
    21 
    22     ASTAT Adapter;   
    23 
    24     typedef struct _LANA_ENUM
    25     {
    26         UCHAR   length;
    27         UCHAR   lana[MAX_LANA];
    28     }LANA_ENUM;
    29 
    30     LANA_ENUM lana_enum;    
    31     UCHAR uRetCode;
    32     memset(&ncb, 0, sizeof(ncb));
    33     memset(&lana_enum, 0, sizeof(lana_enum));    
    34     ncb.ncb_command = NCBENUM;
    35     ncb.ncb_buffer = (unsigned char *)&lana_enum;
    36     ncb.ncb_length = sizeof(LANA_ENUM);
    37     uRetCode = Netbios(&ncb);
    38 
    39     if(uRetCode != NRC_GOODRET)     
    40         return uRetCode;     
    41 
    42     for(int lana=0; lana<lana_enum.length; lana++)     
    43     {
    44         ncb.ncb_command = NCBRESET;
    45         ncb.ncb_lana_num = lana_enum.lana[lana];
    46         uRetCode = Netbios(&ncb); 
    47         if(uRetCode == NRC_GOODRET)
    48             break; 
    49     }
    50 
    51     if(uRetCode != NRC_GOODRET)
    52         return uRetCode;     
    53 
    54     memset(&ncb, 0, sizeof(ncb));
    55     ncb.ncb_command = NCBASTAT;
    56     ncb.ncb_lana_num = lana_enum.lana[0];
    57     strcpy((char*)ncb.ncb_callname, "*");
    58     ncb.ncb_buffer = (unsigned char *)&Adapter;
    59     ncb.ncb_length = sizeof(Adapter);
    60     uRetCode = Netbios(&ncb);
    61 
    62     if(uRetCode != NRC_GOODRET)
    63         return uRetCode;
    64 
    65     sprintf(mac,"%02X-%02X-%02X-%02X-%02X-%02X",
    66         Adapter.adapt.adapter_address[0],
    67         Adapter.adapt.adapter_address[1],
    68         Adapter.adapt.adapter_address[2],
    69         Adapter.adapt.adapter_address[3],
    70         Adapter.adapt.adapter_address[4],
    71         Adapter.adapt.adapter_address[5]);
    72 
    73     return 0;   
    74 } 
    75 
    76 
    77 int main(int argc, char* argv[])
    78 {
    79     char   mac[200]; 
    80     GetMac(mac);   
    81     printf("The Mac Address is : %s   
    ",mac);        
    82 
    83     system("pause");
    84     return 0;
    85 }

     转载:http://www.cnblogs.com/SteveCheung/archive/2012/07/18/2597449.html

  • 相关阅读:
    Python 爬虫
    Web 前端编程运维必备
    Docker 运维高级应用管理
    Python 运维之路
    Linux 运维之路
    8086汇编 中断
    8086汇编 rep 指令
    8086汇编 cmp 指令
    8089汇编 标志寄存器
    8086汇编 call 指令
  • 原文地址:https://www.cnblogs.com/chechen/p/5946717.html
Copyright © 2020-2023  润新知