//获取硬盘ID信息及网卡MAC地址的代码
#include "stdafx.h"
#include <atlbase.h>
#include <atlconv.h>
#include "iphlpapi.h"
#pragma comment ( lib, "Iphlpapi.lib" )
BOOLEAN getActiveMac( char* sMac )
{
BOOLEAN bRtn = FALSE;
PIP_ADAPTER_INFO pAdapterInfo;
PIP_ADAPTER_INFO pAdapter = NULL;
DWORD dwRetVal = 0;
pAdapterInfo = (IP_ADAPTER_INFO *) malloc( sizeof(IP_ADAPTER_INFO) );
ULONG ulOutBufLen = sizeof(IP_ADAPTER_INFO);
if (GetAdaptersInfo( pAdapterInfo, &ulOutBufLen) != ERROR_SUCCESS)
{
free (pAdapterInfo);
pAdapterInfo = (IP_ADAPTER_INFO *) malloc (ulOutBufLen);
}
if ((dwRetVal = GetAdaptersInfo( pAdapterInfo, &ulOutBufLen)) == NO_ERROR)
{
pAdapter = pAdapterInfo;
char szMac[20] = {0};
char szAddress[4] = {0};
while (pAdapter)
{
if ( strcmp( pAdapter->IpAddressList.IpAddress.String ,"0.0.0.0" ) != 0 )
{
for (UINT i = 0; i < pAdapter->AddressLength; i++)
{
sprintf_s( szAddress , "%02X", pAdapter->Address[i] );
strcat_s( szMac , szAddress );
if( i != pAdapter->AddressLength - 1 )
{
strcat_s( szMac , "-" );
}
}
break;
}
pAdapter = pAdapter->Next;
}
memcpy( sMac , szMac , strlen( szMac ) );
}
else
{
printf("Call to GetAdaptersInfo failed.\n");
}
return bRtn;
}
int main(int argc, char* argv[])
{
char sMac[20] = {0};
getActiveMac( sMac );
printf( "%s" , sMac );
return 0;
}
分享到:
相关推荐
下面是一个简单的VC++ 6.0源码示例,展示了如何使用`GetAdaptersInfo`函数获取MAC地址: ```cpp #include #include #include #pragma comment(lib, "iphlpapi.lib") #pragma comment(lib, "ws2_32.lib") void ...
在计算机网络中,获取本机的名称、IP地址和MAC地址是常见的操作,尤其是在软件开发过程中,例如在VC(Visual C++)环境下。这些信息对于网络通信、设备识别和故障排查至关重要。以下将详细讲解如何在VC中实现这些...
总的来说,通过VC6.0和C++获取MAC地址涉及到Windows API的使用,特别是`iphlpapi.lib`库中的函数,如`GetAdaptersInfo()`。这个过程需要对C++编程和Windows API有一定了解,以便正确地链接库、包含头文件以及编写...
本项目使用VC++ 2005 MFC库,提供了一个不依赖于Windows网络服务的方式来获取MAC地址。 首先,我们要理解如何通过`ipconfig`命令获取MAC地址。在Windows系统中,`ipconfig`是一个命令行实用工具,用于显示网络配置...
在Windows环境下,开发C或C++程序时,获取本机MAC(Media Access Control)地址是一项常见的任务,特别是在网络编程中。MAC地址是物理网络接口卡(NIC)的唯一标识,通常用于局域网通信。在VC++(Visual C++)环境中...
"VC获取机器指纹(CPU ID、硬盘ID、MAC地址、BIOS)"这个项目涉及到使用Visual C++(VC)编程语言来获取计算机的一些独特硬件标识,这些标识可以组合成一个唯一的“指纹”。以下是关于这些硬件标识及其获取方法的...
需要注意的是,获取MAC地址的方法可能因操作系统的不同而有所不同,并且某些情况下,例如虚拟机或无物理网卡的环境,可能无法直接获取到真实的MAC地址。此外,为了保护用户隐私,操作系统可能会提供随机生成的MAC...
VC 获取MAC和IP的代码,同时获得域名、主机名、独立工作域、绑定的Ip地址、默认网关以及DNS等。可将本代码所演示的获取方法应用到其它的VC 开发项目中,挺基础,但属于有必要掌握的内容,测试截图如图所示。 程序...
简单的VC++ 获取mac地址识别标识,自己运行过,完全可以用的
本项目名为“vc制作获取mac地址dll”,其核心是创建一个动态链接库(DLL),该库被设计用于客户端软件中,以便能够获取客户计算机的MAC地址。DLL是一种可执行代码模块,它可以被多个程序同时调用,从而实现了代码...
首先,你需要在项目中包含WinPCap的头文件和库文件,然后使用`pcap_findalldevs`函数列出所有网络接口,再通过`pcap_if_t`结构体找到目标网卡的`地址`字段,获取MAC地址。 2. **利用Windows API** Windows操作系统...
标题中的"vc6.0 获取MAC函数文件"指的是在Visual C++ 6.0环境下,开发者需要使用特定的函数来获取计算机的MAC地址。在Windows操作系统中,这通常涉及到网络编程,尤其是涉及到底层网络信息查询时。MAC地址是每个网络...
2. **获取MAC地址**: - 命令行方式:使用`getmac`命令可以列出所有网络适配器的MAC地址。运行`getmac /v`将显示详细信息,包括上层和下层MAC。 - 设备管理器:在网络适配器部分,可以查看每个适配器的物理地址,...
在`VC获取MAC地址.cpp`源代码中,开发者可能首先包含了必要的头文件,如`winsock2.h`和`iphlpapi.h`,这两个头文件提供了网络编程和网络接口相关的函数声明。然后,程序会初始化Winsock,接着调用`...
VC 下建立win32程序实现获取本机IP地址和MAC 地址
在提供的压缩包文件中,`VC获取MAC程序.rar`可能包含了一个完整的VC++项目,实现了上述功能。而`IPHelper(iphlpapi+下载).rar`可能是关于`iphlpapi`库的一些额外资料或者示例代码,帮助开发者更好地理解和使用这个库...
从文件列表来看,`rmac.cpp`可能是主要的实现文件,可能包含了获取MAC地址的函数。`stdafx.cpp`和`stdafx.h`包含预编译头文件,这些文件可以提高编译速度。`Resource.h`定义了应用程序的资源,如对话框、菜单等。`...
在这个项目"获取硬盘、主板、CPU、网卡MAC地址等硬件序列号信息的c++/vc6.0 GetHDSerial源码"中,开发者使用了C++和VC6.0(Visual C++ 6.0)编译器,提供了一套完整的源代码解决方案,用于获取计算机硬件的关键识别...
2. **网络接口卡(NIC)信息**:首先,你需要获取本地计算机上的所有网卡信息,包括它们的名称、描述和物理地址(MAC地址)。在WinPCap中,可以使用`pcap_findalldevs`函数来枚举所有可用的网络设备。 3. **IP-MAC...
vc6.0实现MAC地址的读取,保证软件在唯一电脑中运行。