欢迎来到入门教程网!

C语言

当前位置:主页 > 软件编程 > C语言 >

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

来源:本站原创|时间:2020-01-10|栏目:C语言|点击:

本文实例采用vc6.0运行环境,通过实例实现获得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”。

上一篇:C++实现汉诺塔算法经典实例

栏    目:C语言

下一篇:C++操作MySQL大量数据插入效率低下的解决方法

本文标题:VC实现获取本机MAC地址的方法

本文地址:https://www.xiuzhanwang.com/a1/Cyuyan/3563.html

网页制作CMS教程网络编程软件编程脚本语言数据库服务器

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:835971066 | 邮箱:835971066#qq.com(#换成@)

Copyright © 2002-2020 脚本教程网 版权所有