獨特的計算機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