VC++获取本机MAC地址

 代码如下 复制代码

bool GetMAC(LPTSTR lpszMAC)
{
 ASSERT(lpszMAC);
 char mac[200]={0};
 NCB ncb;
 typedef struct _ASTAT_
 {
  ADAPTER_STATUS   adapt;
  NAME_BUFFER   NameBuff   [30];
 }ASTAT,*PASTAT;

 ASTAT Adapter;

 typedef struct _LANA_ENUM
 {
  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 false;    

 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 false;

 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 false;

 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]);
 strcpy(lpszMAC,mac);
 log_printf("Get local mac address!");
 return true;
}

头文件中需要包含的文件和链接库

 代码如下 复制代码

#include "nb30.h"
#pragma comment(lib, "netapi32")

时间: 2024-08-27 21:02:28

VC++获取本机MAC地址的相关文章

VC实现获取本机MAC地址的方法_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 _AS

利用Java获取本机mac地址

public static void getAllMacAdress() { Enumeration<NetworkInterface> netInterfaces = null; try { // 获得所有网络接口 netInterfaces = NetworkInterface.getNetworkInterfaces(); while (netInterfaces.hasMoreElements()) { System.out .println("===============

python获取本机mac地址和ip地址的方法

  这篇文章主要介绍了python获取本机mac地址和ip地址的方法,涉及Python获取系统相关信息的技巧,需要的朋友可以参考下 本文实例讲述了python获取本机mac地址和ip地址的方法.分享给大家供大家参考.具体如下: ? 1 2 3 4 5 6 7 8 9 10 import sys, socket def getipaddrs(hostname): result = socket.getaddrinfo(hostname,None,0,socket.SOCK_STREAM) retu

javascript-js如何获取本机mac地址?求各位高手指点 最好是纯js的 求各位高手给出关键代码

问题描述 js如何获取本机mac地址?求各位高手指点 最好是纯js的 求各位高手给出关键代码 如何利用js获取本机mac地址 求各位高手能给出关键代码 最好是不需要用c直接纯js实现 解决方案 不知道你为什么要获得mac地址,http协议基于tcp/ip,你服务器得到mac也没用. 为了软件加密授权?客户端js获得mac,再提交服务器,这个又很容易伪造. 而且mac地址的获取在不同平台上又不同,不是web标准.你希望你的网站只能在pc+ie上运行?不支持所有别的浏览器?那你还要web做什么. 解

[急]用VB.NET 在win7系统下如何获取本机mac地址

问题描述 用VB.NET在win7系统下如何获取本机mac地址XP系统如下代码是OK的,在Win7系统中获取不了.DimWmiAsNewSystem.Management.ManagementObjectSearcher("SELECT*FROMWin32_NetworkAdapterConfiguration")ForEachWmiObjAsManagement.ManagementObjectInWmi.GetIfCBool(WmiObj("IPEnabled"

Java获取本机MAC地址

         为什么写这个呢?因为前几天看见网上有采用windows命令获取局域网和广域网MAC,查了查可以直接用JDK的方法.          MAC可用于局域网验证,提高安全性. import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.net.UnknownHostException; /* * 物理地址是48位,别和ipv6搞

win7系统如何获取本机MAC地址定义网络设备位置

  MAC地址又被称MAC位址.硬件位址,用来定义网络设备的位置,在网络上具有唯一性,MAC就如同我们的身份证一样,每个网络设备只有一个,防止在网络上出现重名.由于网络设置需要很多用户需要了解MAC地址,那么我们怎么知道我们win7系统中的MAC地址呢?其实只要简单的几个步骤就可以查看到MAC地址.   1.点击左下角"开始菜单",然后点击"运行",在运行框里输入"CMD"并回车; 2.在命令提示符窗口光标处输入输入命令"ipconfi

php获取本机mac地址三种方法

 代码如下 复制代码 class getmacaddr {         var $return_array = array(); // 返回带有mac地址的字串数组         var $mac_addr;                 function getmacaddr($os_type)         {                 switch ( strtolower($os_type) )                 {                     

java获取访问服务器的客户机MAC地址

问题描述 求java获取访问服务器的客户机MAC地址方法?有没有知道的,帮忙贴上来,谢谢! 解决方案 解决方案二:importjava.io.IOException;importjava.net.DatagramPacket;importjava.net.DatagramSocket;importjava.net.InetAddress;importorg.apache.commons.lang3.StringUtils;importorg.slf4j.Logger;publicclassUdp