Frage

Ich suche nach einer Möglichkeit, eindeutige Computer -ID zu erhalten.

Entsprechend dieser Beitrag Ich kann für diesen Zweck keine Prozessor -ID verwenden. Kann ich Motherboard -ID nehmen? Was ist der beste Weg, um den Computer zu identifizieren?

War es hilfreich?

Lösung

Wie Sie bereits gesagt haben, ist die CPU -ID nicht eindeutig. Sie können sie jedoch mit einem anderen Hardware -Kennung verwenden, um Ihren eigenen eindeutigen Schlüssel zu erstellen.

Referenzbaugruppe System.Management

Verwenden Sie diesen Code also, um die CPU -ID zu erhalten:

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;
}

Verwenden Sie dann diesen Code, um die HD -ID zu erhalten:

string drive = "C";
ManagementObject dsk = new ManagementObject(
    @"win32_logicaldisk.deviceid=""" + drive + @":""");
dsk.Get();
string volumeSerial = dsk["VolumeSerialNumber"].ToString();

Dann können Sie diese beiden Serien einfach kombinieren, um eine UniqueID für diese Maschine zu erhalten:

string uniqueId = cpuInfo + volumeSerial;

Je mehr Hardwarekomponenten Sie die IDs erhalten, desto größer wird die Einzigartigkeit. Die Wahrscheinlichkeit, dass dieselbe Maschine mit einer identischen CPU -Serienn- und Festplattenserie mit identischer CPU -Serie ist, sind jedoch bereits gering.

Andere Tipps

Die Motherboard -ID ist eine ziemlich eindeutige Kennung. Eine weitere Option ist die Verwendung der MAC -Adresse für Netzwerkkarten, die ziemlich eindeutig sind.

MAC -Adresse des Netzwerkadapters? Sicherheitskennung (SID) des Windows -Betriebssystems? (Angenommen, es handelt sich um Windows, mit denen Sie es zu tun haben) Könnten Sie für jeden PC nur eine Richtlinie generieren?

Was genau versuchen Sie zu erreichen?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top