我正在玩从NIC中检索MAC地址 - 有多种方法可以获得它,本文介绍了最常见的:
http://www.codeguru.com/Cpp/I-N/network/networkinformation/article.php/c5451
我目前正在使用GetAdaptersInfo方法,这似乎是最防弹的,但是如果通过注册表设置了MAC地址:
然后它报告已更改为的MAC地址。我发现实际获得真正的MAC的唯一方法是删除注册表项,重新启动NIC,通过GetAdaptersInfo获取MAC,然后替换注册表项,然后重新启动NIC。虽然它完成了工作,但它对用户来说几乎不透明。
是否还有其他人熟悉的方法,无论注册表设置的是什么,都会返回硬件MAC?理想情况下,我想要一个适用于XP的解决方案。
提前致谢!
答案 0 :(得分:2)
我的猜测是,在链接的CodeGuru文章中,Miniport解决方案可能会克服您描述的问题,尽管实施起来很痛苦。我认为这是因为我过去自己使用过GetAdaptersInfo解决方案,并注意到在添加适配器时MAC地址将无需重启即可更改,例如:提供PAN服务的蓝牙适配器。
或许不是在更改注册表设置后重新启动,您可以尝试停止并重新启动相关的网络服务。在寻找程序化解决方案之前,您可以轻松地手动检查。
(n.b。以上都是猜测工作。如果你尝试它并且它有效,也许为那些试图在将来做同样事情的人添加一个帖子。)
答案 1 :(得分:0)
解析ipconfig /all
答案 2 :(得分:0)
您可以使用WMI枚举Win32_NetworkAdapter实例并查看MACAddress属性。如果您安装了多个活动适配器,则此技术的主要问题是找到适当的适配器实例,例如:在同样具有无线连接的笔记本电脑上。