独特的计算机ID
回答
正如你所说的CPU ID不会是唯一的,但是你可以使用它与另一个硬件标识符来创建你自己的唯一密钥。
参考装配System.Management
所以,使用此代码来获取CPU ID:
string cpuInfo = string.Empty;
ManagementClass mc = new ManagementClass("win32_processor");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
cpuInfo = mo.Properties["processorID"].Value.ToString();
break;
}
然后使用此代码来获取HD ID:
string drive = "C";
ManagementObject dsk = new ManagementObject(
@"win32_logicaldisk.deviceid=""" + drive + @":""");
dsk.Get();
string volumeSerial = dsk["VolumeSerialNumber"].ToString();
然后,您可以只需结合这两个系列即可获得该机器的唯一ID:
string uniqueId = cpuInfo + volumeSerial;
显然,您获得的ID越多,硬件组件的唯一性就越高。但是,具有相同CPU序列和硬盘序列的同一台机器的机会已经很少。
正如我之前所说的处理器ID不合适。 – StuffHappens 2010-08-13 08:05:51
@StuffHappens - 更新了答案。 – GenericTypeTea 2010-08-13 08:09:17
我明白你的观点。我只是怀疑如果有一个RAID,我会得到什么,并且有两个不同的硬盘与磁盘C在他们身上。 – StuffHappens 2010-08-13 08:20:40
主板ID是一个非常独特的标识符。另一种选择是使用网卡MAC地址,这非常独特。
但应该注意的是,MAC可以从NIC属性窗口更改为很多NIC,而主板ID很难更改。 – ErikHeemskerk 2010-08-13 07:59:38
据我所知你可以改变你的mac地址。如果有多个网板(或者我应该如何命名),该怎么办? – StuffHappens 2010-08-13 08:01:08
这是正确的。主板ID更独特。但是,如果您不需要非常强大的唯一性(即可以假设MAC不会更改),则获取mac地址要容易得多。 @Stuff,一起散列地址? :) – 2010-08-13 09:32:09
网卡的MAC地址? Windows操作系统安装的安全标识符(SID)? (假设它是你正在处理的窗口) 你能为每台PC生成一个GUID吗?
你究竟想达到什么目的?
+1仅用于生成GUID:P – cwap 2010-08-13 08:10:46
如果他正在尝试为授权机制执行此操作,则可以非常轻松地更改SID和MAC地址,因此不会被接受。 – GenericTypeTea 2010-08-13 08:15:34
- 1. PHP独特的计算机ID
- 2. 计算机特定的ID?
- 3. Flex 4.5 - 独特的计算机信息
- 4. 独特的计算机识别@ Java Applet
- 5. 如何将独特的计算机系统的ID绑定到软件
- 6. 计算独特因子r
- 7. 独立于平台的唯一计算机ID java
- 8. SQL - 具有独特的计数的ID
- 9. 设备ID是计算机
- 10. 独特的计数通过ID
- 11. 独特的随机数算法
- 12. 计算方案中的独特元素
- 13. 每个独特/不同值的计算
- 14. 计算Citrix上的独特用户?
- 15. Python - 独特元素的计算频率
- 16. (R):计算独特的行值统一
- 17. 独特INT ID
- 18. Android独特ID
- 19. 我想计算特定ID的总和
- 20. 基于独特日期计算记录
- 21. 单独计算独特日期的平均数
- 22. 计算机特定的JavaScript执行
- 23. 特定于计算机的Winforms许可
- 24. 从PHP获取计算机唯一ID
- 25. 独特的NFC标签ID
- 26. MSDTC从独立的机器到域计算机
- 27. 针对学生的计算机科学项目的独特创意?
- 28. 如何使用Qt/C++识别用于许可目的的独特计算机?
- 29. 计算两次单独计算
- 30. 独特的Id:是一个独特的用户名+ currentMilliseconds足够好,为一个独特的Id
这与C#无关。 – 2010-08-13 07:57:21
有人会认为(当我回答编程问题时,我很欣赏),一旦通用机制被识别出来,C#中的特定实现就会被期望... – Murph 2010-08-13 07:59:36
我应该为这个问题使用什么标签? – StuffHappens 2010-08-13 08:02:13