这我的工作的程序假定由Windows RPC API生成的UUID调用UuidCreateSequential()包含主以太网适配器的MAC地址。这是假设是正确的或我应该使用不同的方法来获取MAC地址?

有帮助吗?

解决方案

我不会依靠这一点 - UuidCreateSequential具有MAC地址的唯一原因是它试图保证UUID是在网络上唯一的。另外,你为什么要使用这样一个奇怪的方式来获得MAC地址?使用WMI和实际上请求的MAC地址而不是一个UUID创建功能的副作用。

其他提示

这似乎是一个有效的假设。在 MSDN文档明确表示,这将包含以太网地址卡在机器上。它没有提到关于MULT卡方案什么,但采摘主卡似乎是一个合乎逻辑的飞跃。

如果你正在编写托管代码,我会使用的 NetworkInterface 类并调用GetAllNetworkInterfaces()。或C ++代码,调用 GetAdaptersInfo ,该是什么管理实现使用。

即使UuidCreateSequential没有对这项工作,这是一个非常模糊的方式来获取信息,并隐藏就像拥有一个以上的适配器的计算机的潜在问题。

只有一个版本1 UUID包含MAC地址,且仅当原始发生器曾获得的MAC地址开始。如果原来的发电机没有访问的MAC地址,它会使用从6个加密安全随机数发生器采购随机字节,按照RFC 4122正因为如此的第4.5节,有没有保证的MAC地址在一个给定的UUID实际上是一个MAC地址。

在大多数情况下,唯一的原因的任何人会需要从一个UUID解析出的MAC地址是用于法医目的。见例如嵌入Word文档有效载荷Melissa病毒的UUID。研究者提取从这些ID的MAC地址,并将其匹配到嫌疑人的初始网络适配器的MAC地址。

如果你想获得你自己的电脑的MAC地址,还有要对这个更好的方式。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top