爱死你了 发表于 2017-7-6 14:05:02

C++ 获取mac地址

// MacAddress.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <windows.h>
#include <wincon.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <Nb30.h>
#pragma comment(lib,"netapi32.lib")
int GetMac(char * mac)   
{   
   NCB ncb;
   typedef struct _ASTAT_
   {
         ADAPTER_STATUS   adapt;
         NAME_BUFFER   NameBuff   ;
   }ASTAT,*PASTAT;

   ASTAT Adapter;   

   typedef struct _LANA_ENUM
   {
         UCHAR   length;
         UCHAR   lana;
   }LANA_ENUM;

   LANA_ENUM lana_enum;   
   UCHAR uRetCode;
   memset(&ncb, 0, sizeof(ncb));
   memset(&lana_enum, 0, sizeof(lana_enum));   
   ncb.ncb_command = NCBENUM;
   ncb.ncb_buffer = (unsigned char *)&lana_enum;
   ncb.ncb_length = sizeof(LANA_ENUM);
   uRetCode = Netbios(&ncb);

   if(uRetCode != NRC_GOODRET)   
         return uRetCode;   

   for(int lana=0; lana<lana_enum.length; lana++)   
   {
         ncb.ncb_command = NCBRESET;
         ncb.ncb_lana_num = lana_enum.lana;
         uRetCode = Netbios(&ncb);
         if(uRetCode == NRC_GOODRET)
             break;
   }

   if(uRetCode != NRC_GOODRET)
         return uRetCode;   

   memset(&ncb, 0, sizeof(ncb));
   ncb.ncb_command = NCBASTAT;
   ncb.ncb_lana_num = lana_enum.lana;
   strcpy((char*)ncb.ncb_callname, "*");
   ncb.ncb_buffer = (unsigned char *)&Adapter;
   ncb.ncb_length = sizeof(Adapter);
   uRetCode = Netbios(&ncb);

   if(uRetCode != NRC_GOODRET)
         return uRetCode;

   sprintf(mac,"%02X-%02X-%02X-%02X-%02X-%02X",
         Adapter.adapt.adapter_address,
         Adapter.adapt.adapter_address,
         Adapter.adapt.adapter_address,
         Adapter.adapt.adapter_address,
         Adapter.adapt.adapter_address,
         Adapter.adapt.adapter_address);

   return 0;   
}

int main(int argc, char* argv[])
{
   char   mac;
   GetMac(mac);   
   printf("The Mac Address is : %s   \n",mac);      

   system("pause");
   return 0;
}
  转载:http://www.cnblogs.com/SteveCheung/archive/2012/07/18/2597449.html
页: [1]
查看完整版本: C++ 获取mac地址