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 \n",mac);
82
83 system("pause");
84 return 0;
85 }
转载:http://www.cnblogs.com/SteveCheung/archive/2012/07/18/2597449.html
原文链接: https://www.cnblogs.com/chechen/p/5946717.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/241826
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!