gpt4 book ai didi

c++ - 如何获得相同的MAC地址?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:34:14 37 4
gpt4 key购买 nike

我正在使用以下代码获取 MAC 地址:

IP_ADAPTER_INFO adpInfo[16];
DWORD len = sizeof(adpInfo);
GetAdaptersInfo(adpInfo, &len );
printf("%02x%02x%02x%02x%02x%02x", adpInfo[0].Address[0], adpInfo[0].Address[1], adpInfo[0].Address[2], adpInfo[0].Address[3], adpInfo[0].Address[4], adpInfo[0].Address[5]);

但是,如果计算机有很多网络适配器(例如:以太网和 WiFi),那么每次我调用这段代码时,我都会得到一个不同的 MAC 地址。

有没有办法始终获得相同的 MAC 地址(例如:以太网)。

最佳答案

由于 GetAdaptersInfo 方法包含的信息几乎与 IPCONFIG/ALL 一样多(包括您的 DHCP 服务器、网关、IP 地址列表、子网掩码和 WINS 服务器),因此您可以使用它。它还会枚举您 PC 上的所有 NIC,即使它们未连接到有效网络(但必须在 Windows 中“启用”NIC)

示例,打印所有接口(interface):

static void GetMACaddress(void)
{
IP_ADAPTER_INFO AdapterInfo[16];

DWORD dwBufLen = sizeof(AdapterInfo);

DWORD dwStatus = GetAdaptersInfo(AdapterInfo, &dwBufLen);

assert(dwStatus == ERROR_SUCCESS);

PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo;

do {
PrintMACaddress(pAdapterInfo->Address);
pAdapterInfo = pAdapterInfo->Next;
}
while(pAdapterInfo);
}

您可以保存 AdapterName,然后在下次调用时比较它以确保检索到指定适配器的 MAC。

在此处查看IP_ADAPTER_INFO 结构:https://msdn.microsoft.com/en-us/library/windows/desktop/aa366062%28v=vs.85%29.aspx

代码来自:http://www.codeguru.com/cpp/i-n/network/networkinformation/article.php/c5451/Three-ways-to-get-your-MAC-address.htm

关于c++ - 如何获得相同的MAC地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30113226/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com