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





  • 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


Log in to reply