基本上,我们有三种方法获取MAC地址:
1.UuidCreate
或者
UuidCreateSequential
如果你只有一个NIC(网络适配器),可以选择用UuidCreateSequential,windows2000或更高的版本(rpcrt4.dll)都支持它。
2.使用NetBIOS
它支持多个网卡,但是它比较复杂,需要安装NetBIOS,还需要连接到一个有效的NetBIOS网络上。
3.GetAdaptersInfo
或者
GetAdaptersAddresses
GetAdaptersInfo函数取得本地计算机的适配器信息。如果是在Window XP或之后的版本,请使用GetAdaptersAddresses函数而不是GetAdaptersInfo函数。即使你的网络适配器没有连接到一个有效的网络,这两个函数依然可以使用。然而,通过这两个函数很难区分虚拟网卡和物理网卡,当前的一个解决方法就是查看在注册表项中的网卡信息。
HKLM\SYSTEM\CurrentControlSet\Control\Network\{card name}\Connection,
如果PnpInstanceID的值以“PCI”开头,它就是个物理网卡,并且MediaSubType的值代表无线网卡(02)或正常(01)
相关英文参考资料:
http://www.codeguru.com/Cpp/I-N/network/networkinformation/article.php/c5451
相关英文论坛的帖子:
http://social.msdn.microsoft.com/Forums/en-US/vclanguage/thread/67fe193a-ba67-454c-b19d-81ee4168818c
http://social.msdn.microsoft.com/Forums/en-US/vclanguage/thread/4e8fee7f-8cfb-4a87-8b22-840c37cadc45
如果您对我们的论坛在线支持服务有任何的意见或建议,请通过
邮件告诉我们。