VC实现获取本机MAC地址的方法

来源:爱站网时间:2019-09-06编辑:网友分享
在实际的程序开发中,经常需要在程序运行时获取mac地址,其实MAC地址作为一种标识,是网卡的物理地址,也是是计算机通信的主要硬件设备,那么VC实现获取本机MAC地址的方法有哪些呢?下面跟爱站技术频道小编一起来了解吧。

在实际的程序开发中,经常需要在程序运行时获取mac地址,其实MAC地址作为一种标识,是网卡的物理地址,也是是计算机通信的主要硬件设备,那么VC实现获取本机MAC地址的方法有哪些呢?下面跟爱站技术频道小编一起来了解吧。

完整的实例代码如下:

#include "stdafx.h"
#include  <stdio.h>  
#include  <stdlib.h>  
#include  <httpext.h>  
#include  <windef.h>  
#include  <Nb30.h>

int getMAC(char * mac)   
{   
 NCB ncb;   
 typedef struct _ASTAT_   
 {
  ADAPTER_STATUS  adapt; 
  NAME_BUFFER  NameBuff  [30];   
 }ASTAT,  *  PASTAT;   
 ASTAT Adapter;   
  
 typedef struct _LANA_ENUM   
 {  //  le 
  UCHAR  length; 
  UCHAR  lana[MAX_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[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[0];
 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[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] 
 ); 
 return 0;  
 }

int main(int argc, char* argv[])
{
 char  mac[200];  
 getMAC(mac);  
 printf("  mac  :  %s  \n",mac);  
 
 return 0;
}

另外还需要注意:必须在project->Setting里添加库文件“netapi32.lib”。

以上是关于VC实现获取本机MAC地址的方法介绍,看完后你有所收获吗?我们还整理了更多最新最全面的相关资讯,喜欢的朋友们还可以收藏爱站技术频道哦!

上一篇:解析互斥量与条件变量的详解

下一篇:C++实现哈夫曼树简单创建与遍历的方法

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载