`
dream_people
  • 浏览: 60126 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

获取网卡MAC地址

阅读更多

vc编译时需要添加netapi32.lib

#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;  
}

分享到:
评论

相关推荐

    DELPHI获取网卡MAC地址.pdf

    DELPHI获取网卡MAC地址 DELPHI获取网卡MAC地址是一个常见的网络编程任务,本文将详细介绍如何使用DELPHI语言获取网卡的MAC地址。 获取网卡MAC地址的方法 DELPHI获取网卡MAC地址有多种方法,本文将介绍两种常见的...

    linux 下C语言获取网卡MAC地址

    适用于linux环境的C语言程序,获取网卡MAC地址,附详细操作说明,两种方式写成的程序,都能达到所需功能,测试可用。

    获取网卡MAC地址 获取网卡MAC地址

    获取网卡MAC地址是网络管理、设备识别或者安全验证等场景中的常见需求。在不同的操作系统中,获取MAC地址的方法略有不同。以下是一些主要操作系统的获取方法: 1. **Windows系统**: - 命令行:通过运行`cmd`打开...

    利用C++Builder获取网卡Mac地址

    总的来说,通过C++Builder和Windows API,我们可以轻松地实现获取网卡Mac地址的功能。这对于网络编程、设备识别或者网络监控等场景非常有用。理解并掌握这部分知识,对于提升你的C++Builder编程技能以及对底层系统...

    VB获取网卡MAC地址代码

    ### VB获取网卡MAC地址代码解析 在计算机网络领域中,MAC地址是识别网络设备的重要标识之一,尤其在网络管理、安全控制等方面具有重要的作用。在Visual Basic(简称VB)环境中,可以通过特定的方法来获取本地计算机...

    Delphi获取网卡Mac地址源码

    Delphi获取网卡mac地址的pas文件,关键部分函数全在里面,方便使用和调试,xp系统下有点bug,可能获取不到mac地址,原因我没细研究

    PHP获取网卡MAC地址代码.rar

    标题"PHP获取网卡MAC地址代码.rar"提示我们这是一个压缩包,其中包含了用PHP编写的代码,目的是获取计算机上某一网卡的MAC地址。这个压缩包可能包含了一个类文件和一个演示如何使用该类的示例文件。由于描述中提到...

    c#获取网卡MAC地址,主板信息,CPU序列号,硬盘卷标……代码

    1. **获取网卡MAC地址**: MAC地址(Media Access Control Address)是网络接口控制器的物理地址,用于标识网络设备。在C#中,我们可以使用`System.Net.NetworkInformation`命名空间下的`NetworkInterface`类来获取...

    获取网卡MAC地址的小软件

    获取网卡MAC地址的小软件 另外还可以获取本机IP地址和网卡的信息,很实用的

    PB获取网卡MAC地址

    "PB获取网卡MAC地址"的程序就是为了实现这一功能。 首先,我们需要理解MAC地址的基本概念。MAC地址是一个48位的二进制数,通常以12个十六进制数字的形式表示,例如`00:11:22:33:44:55`。它由网络设备制造商分配,并...

    七种获取PC上网卡物理地址MAC方法的Demo

    本Demo集中展示了七种不同的方法来获取个人计算机(PC)上的网卡物理地址,即MAC地址。这些方法可能来源于各种编程技术或API调用,以适应不同的操作系统和网络环境。以下将详细介绍这七个方法以及涉及到的相关知识点...

    获取网卡Mac地址C++代码1

    以下是对标题"获取网卡Mac地址C++代码1"及描述中涉及知识点的详细说明: 首先,Mac地址是Media Access Control Address的缩写,是一个用于标识网络硬件接口的全球唯一64位地址。它由12个16进制数字组成,通常用冒号...

    javascript获取客户端网卡MAC地址和IP地址和计算机名

    javascript获取客户端网卡MAC地址和IP地址和计算机名

    PHP获取网卡MAC地址(类及调用示例).rar

    在这个场景下,我们有一个名为"PHP获取网卡MAC地址(类及调用示例).rar"的压缩包,里面包含了一个实现此功能的PHP类和一个调用示例。 首先,让我们了解这个类`GetMacAddr.class.php`。通常,PHP通过执行底层系统命令...

    VB获取网卡MAC地址小工具 源码免费放出.rar

    标题中的"VB获取网卡MAC地址小工具 源码免费放出.rar"表明这是一个使用Visual Basic(VB)编程语言开发的小程序,其主要功能是获取计算机的物理(MAC)地址。MAC地址是网络接口控制器(NIC)的一个独特标识,通常...

Global site tag (gtag.js) - Google Analytics