2013-08-03 11 views
6

Ich schreibe einen Spieleserver in Java und ich brauche eine Möglichkeit, eine eindeutige Kennung für einen Computer zu erhalten (Multiaccount-Schutz), Zielplattform ist Windows> = XP. Getestet habe ich viele Möglichkeiten, es mit reinen Java und JNI zu tun:Wie erhalte ich eine eindeutige Kennung des Computers?

  • MAC-Adresse - Sehr einfach zu ändern, hohe Kollisions Chance
  • (JNI) Motherboard SN - Es ist nicht immer, hohe Kollisions Chance
  • (JNI) Diskdrive SN - Laufwerk kann nicht nach Laufwerksbuchstabe mit WMI erkannt werden, geringe Kollisionswahrscheinlichkeit, funktioniert nicht unter Windows XP (hat kein SerialNumber Feld)
  • Datei im versteckten Ordner - Speichert nicht nach Windows Neuinstallation, kann ändern oder löschen, wenn ich weiß, wo es ist.
  • (JNI) Windows GUID - hohe Kollisionswahrscheinlichkeit, speichert nicht nach Windows neu installieren.

Irgendein anderer Weg?

+0

Wenn Sie in Java schreiben, warum gibt es die Tags für C++ & C ?! –

+0

Ich benutze JNI :) – sashok724

+2

@IosifM. Er kann nativen Code in c/C++ schreiben. – tbodt

Antwort

2

kann ich schlage vor, Sie CPUID zu verwenden, ich habe es zu meiner Software verwendet Lizenzierung

Prost :)

+0

sehr nette Idee. –

+0

Aber CPUID kann nur zwei Werte: Genuine oder AuthenticAMD – sashok724

+0

Es hat viel mehr als das - einen Blick auf [Wikipedia] (http://en.wikipedia.org/wiki/CPUID) –

0

ist es nicht wirklich eine Möglichkeit, die eindeutige Kennung des Computers zu erhalten. Viele Programmierer wenden unterschiedliche Logik und verschiedene Dinge an, aber jede Logik oder jedes System ist kein vollständiger Beweis. Sie müssen also eine Logik erstellen, die nicht leicht von anderen Programmierern zu lösen ist. Wie Sie versuchen, Game Server erstellen und somit haben Sie unterschiedliche Logik und Beste, was einzigartig Ich habe festgestellt, um zu versuchen, sind:

  • Sie die IP-Adresse des Benutzers haben kann

  • MAC-Nutzer Adresse

  • Benutzer E-Mail-Adresse

  • Benutzer HDD Seriennummer

  • U ser Motherboard Name und Nummer

Sie haben die Ihre Kombination erstellen zusammen mit einigen Hash so zu mischen, der Schlüssel bleibt einzigartig für jeden Computer

+0

Bitte lies meine Frage vollständig! 1) Viele Benutzer verwendet NAT oder dynamische IP 2) MAC-Adresse ist unsicher 3) E-Mail ist änderbar und hat Dienste, die einmalige E-Mails 4) Kann sich ändern, nicht global eindeutig 5) Nicht immer hat – sashok724

Verwandte Themen