Eindeutige Identifizierung eines Computers
-
Hallo,
ich möchte eine Art Hardware-ID generieren an der ich verschiedene Computer auseinanderhalten kann. Was ist da der beste Weg, habe schon über die MAC-Adresse nachgedacht, die scheint aber auch nicht 100% eindeutig zu sein. Was gibt es da noch für Möglichkeiten?
Es geht mir nicht darum damit irgendwelche Software zu lizensieren, es ist ok dass wenn sich was grundlegendes an der Hardware ändert, dass das dann als neuer PC erkannt wird.
Grüße
-
Hallo,
Schau mal hier darüber: http://stackoverflow.com/questions/99880/generating-a-unique-machine-id
-
Wozu soll das gut sein? Was willst du wirklich wiedererkennen?
-
Wir machen es so...Nicht sehr schön aber es reicht. Ist C#!
StringBuilder prehash = new StringBuilder(); #region BIOS ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_BIOS"); #region SN foreach (ManagementObject queryObj in searcher.Get()) { prehash.Append(queryObj["SerialNumber"]); } #endregion searcher.Dispose(); #endregion #region OperatingSystem searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_OperatingSystem"); #region SN foreach (ManagementObject queryObj in searcher.Get()) { prehash.Append(queryObj["SerialNumber"]); } #endregion searcher.Dispose(); #endregion #region Processor searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_Processor"); #region ProcessorId foreach (ManagementObject queryObj in searcher.Get()) { prehash.Append(queryObj["ProcessorId"]); prehash.Append(queryObj["UniqueId"]); } #endregion searcher.Dispose(); #endregion #region Win32_BaseBoard searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_BaseBoard"); #region SN foreach (ManagementObject queryObj in searcher.Get()) { prehash.Append(queryObj["SerialNumber"]); } #endregion searcher.Dispose(); #endregion UID = Helper.Sha512Encrypt(prehash.ToString()).ToLower();
-
Hardware ID:
http://msdn.microsoft.com/en-us/library/windows/hardware/ff549203(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/windows/hardware/ff546152(v=vs.85).aspxüber die MAC-Adresse nachgedacht
Kein schleichte Idey, MAC Adresse der Nezwerkarte kannst via WMI ermitteln.
Schau dir diesen Post na, vieleicht kannst damit für ersten Schritt was anfangen:
http://www.c-plusplus.net/forum/309254-full