获取机器的 MAC 地址——好的解决方案吗?

2023-12-03

我听说我当前的 winpcap 库不可能实现这一点。

这是真的吗?我在网上看到很多例子,但随后评论说“这不起作用”。

获取本地计算机的 MAC 地址的最佳方法是什么?


一种常见的方法是使用 UUID 中的位,但这并不完全可靠。例如,即使在没有网络适配器的计算机上它也会返回一个值。

幸运的是,有一种方法可以在任何相当新的 Windows 版本上可靠地工作。 MSDN 说它只能追溯到 Windows 2000,但如果没记错的话,它也可以在 NT 4 上运行,从 SP 5 左右开始,以防有人仍在使用 NT 4。

#include <windows.h>
#include <iphlpapi.h>
#include <stdio.h>

int main() {         
    IP_ADAPTER_INFO *info = NULL, *pos;
    DWORD size = 0;

    GetAdaptersInfo(info, &size);

    info = (IP_ADAPTER_INFO *)malloc(size);

    GetAdaptersInfo(info, &size);

    for (pos=info; pos!=NULL; pos=pos->Next) {
        printf("\n%s\n\t", pos->Description);
        printf("%2.2x", pos->Address[0]);
        for (int i=1; i<pos->AddressLength; i++)
            printf(":%2.2x", pos->Address[i]);
    }

    free(info);
    return 0;
}

请原谅古老的C代码......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取机器的 MAC 地址——好的解决方案吗? 的相关文章

随机推荐