2011-12-12 69 views
4

所以我有下一个情况 - 共享文件系统,通过N个一样的机器。我的应用程序运行在所有的应用程序上。我需要了解我的应用程序在哪个机器上运行 - 一些唯一的ID ...是否有这样的事情,是否可以模拟它?有没有跨平台的图书馆可以帮助解决这个问题?跨平台库,用于唯一标识我的应用程序当前正在运行的计算机?

+1

我猜MAC地址是唯一的*除非被欺骗...... – Constantinius

+1

硬盘的序列号也是可用的。 –

+0

有很多的可能性。大多数硬件相关(即使用您的硬件唯一标识符)。你甚至可以混合这些,并使你*独特*哈希,如md5(hd_serial + mac_address)。 – frarees

回答

2

这里有两个问题,您的匹配的安全性和稳定性。

硬件特性是一个很好的开始。像MAC地址,CPU,硬盘标识符。

这些事情理论上可以改变。如果一个硬盘坏了,你可能会失去系统上的任何配置。我可以看到一个系统分别发送每个特性的哈希值。如果五分之四匹配,你可能会猜测他们的网卡被着火并被更换。

如果你只需要一个人头,你甚至可能不会对这个带有不同签名的新系统感兴趣。

通常,人们并不太在意这些系统的安全性;他们只是想跟踪网络上的资源。如果有人想欺骗他们可以的硬件标识符。对于简单的情况,我会查看安装程序注册一个盐渍标识符。如果你真的需要非常安全的东西,你可能会开始考虑商业产品(或者特别提出有关安全方面的另一个问题)。

这两种都很明显容易出错。在这些情况下,我不确定你应该完全自动化。考虑一下网卡行为怪异的情况,并将它们与另一台机器交换。

人眼很不错,让管理员使用它们。在最坏的情况下,他们可以用快速电子邮件解决问题。只要给他们足够的信息,在出现问题时做出明智的决定。真的,如果你只是登录一切,人类应该能够重新创建场景并做出决定。这些东西大多数不会每天都在改变。当硬件失败时,不是每天都有更多的工作。

相关问题