2010-04-12 105 views
4

我目前正在使用WMI来查询有关底层硬件的各种细节,以唯一标识一台机器。为此,我在“Win32_DiskDrive”下找到了一个名为“Signature”的字段。这个签名是否跨机器(全球)是唯一的?这可以用来可靠地识别机器吗?DiskDrive签名是否唯一?

感谢, Ananth

+0

可能的重复http://stackoverflow.com/questions/1346450/win32-diskdrive-signature-property – Helen 2010-04-12 13:04:52

+0

谢谢指出。但是,它似乎仍不能回答签名是否在全球独一无二。 – Ananth 2010-04-12 13:46:42

+0

仅当您使用MBR分区表时才提供Signature值。较新的机器正在使用GPT。请参阅http://stackoverflow.com/questions/13612067/random-value-for-disk-signature – Thomas 2012-12-12 17:34:44

回答

1

以我的经验,它并不总是,但可能往往不够你的目的。

我的公司生产软件,其中包括从物理机器生成虚拟机。我们必须解决的问题之一是如何保留磁盘签名,因为Windows使用该签名来识别磁盘。如果您知道签名存储在主引导记录中的位置,则可以创建具有相同签名的另一个磁盘。

所以答案就是这样。如果您认为该签名能够唯一标识该机器,并且您遇到某人已经克隆磁盘或以其他方式获得重复签名的情况,那么您的应用会如何响应?那会有多严重的问题呢?如果答案“不是那么严肃”,那么对于你的目的来说可能就够了。

您也可以考虑机器以太网卡上的MAC地址。这(或多或少)保证是唯一的,如果不是,他们有其他问题(如ARP解决问题)。

+0

谢谢。所以,如果我明白了,签名是独一无二的机会很高,但应用程序仍然能够处理它们并非唯一的边缘情况。 关于MAC地址,请参阅Johannes Rossel在http://stackoverflow.com/questions/2154722/algorithm-to-generate-unique-possibly-auto-incremented-ids中的评论,其中提到有用户可配置的MAC地址以及NIC。 – Ananth 2010-04-13 04:33:42

+0

就是这样。 至于MAC地址,这是“或多或少”的“或更少”部分:)我认为MAC地址更好的原因是我认为它更可能是唯一的,因为如果两张卡片相同的LAN段具有相同的MAC地址,坏事情将发生,而具有相同磁盘签名的两台计算机将愉快地共存。因此,重复的MAC地址比重复的磁盘签名更可能被注意和解决。 但无论哪种情况,您的应用都应该适当地处理边缘情况。 – anelson 2010-04-14 19:47:13