如何查找 MAC 地址
how to find a mac address?
如何在 C++ 中找到当前正在运行应用程序的计算机的 MAC 地址,然后将该 Mac 地址与某个 Mac 地址进行比较?
因此,假设我们要比较的某些Mac地址是AB-12-CD-34-EF-56
,如何找到运行应用程序的Mac地址,然后将该Mac地址与AB-12-CD-34-EF-56
MAC地址进行比较? 做这样的事情最好和最简单的方法是什么?
在Windows上,您可以使用函数GetAdaptersAddresses()
来获取包含PhysicalAddress[MAX_ADAPTER_ADDRESS_LENGTH];
的IP_ADAPTER_ADDRESSES
结构(即Mac地址)。
此函数将引入库Iphlpapi.lib
和头文件<iphlpapi.h>
作为依赖项。一个简单的示例,它将从可用适配器打印所有 mac 地址:
#include <Winsock2.h>
#include <iphlpapi.h>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
#include <vector>
#pragma comment(lib, "IPHLPAPI.lib")
int main(int argc, char* argv[]){
ULONG outBufLen = sizeof(IP_ADAPTER_ADDRESSES);
GetAdaptersAddresses(0, 0, NULL, NULL, &outBufLen);
std::vector<uint8_t> bytes(outBufLen, 0);
PIP_ADAPTER_ADDRESSES pCurrAddresses = (IP_ADAPTER_ADDRESSES *)bytes.data();
DWORD dwRetVal = GetAdaptersAddresses(0, 0, NULL, pCurrAddresses, &outBufLen);
if (dwRetVal == NO_ERROR) {
while (pCurrAddresses != NULL){
for (size_t i = 0; i < (int) pCurrAddresses->PhysicalAddressLength; i++) {
if (i == (pCurrAddresses->PhysicalAddressLength - 1))
std::printf("%.2Xn", (int) pCurrAddresses->PhysicalAddress[i]);
else
std::printf("%.2X-",(int) pCurrAddresses->PhysicalAddress[i]);
}
pCurrAddresses = pCurrAddresses->Next;
}
}
std::system("pause");
return 0;
}
相关文章:
- 动态获取 esp32 的 mac 地址并在以太网库中使用它.
- 将Wiimote MAC地址转换为PIN码,从C++转换为Python或Javascript
- 读取 MAC 地址时文件读取异常
- OMNET++:如何在INET 4.0中获取帧的源MAC地址?
- 获得MAC地址的代码似乎会损坏内存,但仅在发布构建中而不是调试构建
- 如何在 Windows 中使用 C++ 获取 MAC 地址
- MAC 地址解析
- Boost Regex用于格式化MAC地址字符串
- 从Netsh WLAN获取MAC地址
- Linux C++ 如何以编程方式获取 LAN 上所有适配器的 MAC 地址
- 将格式化的 mac 地址写入字符串流
- 如何在给定设备实例ID的情况下可靠快速地获取网卡的MAC地址
- 查找 DNS 服务器和网关的 IP 和 MAC 地址
- C 中的蓝牙 MAC 地址
- 在字符串向量中创建20000个MAC地址
- 获取系统的唯一标识符(而不是MAC地址)
- 如何使用本机 Wifi API C++获取 MAC 地址和信道信息
- C ++如何将我的命令行参数(MAC地址)转换为无符号字符
- 当您拥有蓝牙设备的名称时,您可以获取蓝牙设备的蓝牙MAC地址吗?
- 视觉 6.0 和查找 MAC 地址