Suche Anhaltspunkt für plattformübergreifende, "unique machine id" ...

Status
Nicht offen für weitere Antworten.
T

tuxedo

Gast
Hallo zusammen,

stehe mal wieder vor nem kleinen Problemchen das mich seit geraumer Zeit beschäftigt.

Eine Serveranwendung muss Clientrechner unabhängig von der IP (die kann sich ändern) eindeutig identifizieren können. Hatte bisher dafür die MAC-Adressen (client) im System genutzt, diese in hex-string-form konkateniert, gehashed und als ID zum Server geschickt.

Hat prima funktioniert, bis der erste auf die Idee gekommen ist die WLAN-Karte im Notebook je nach Standort aus und einzuschalten. Aus Sicht von Java ist die MAC-Adresse dann "weg", bzw. "wieder da" wenn man die Karte wieder aktiviert.

Bin dann auf die gloreiche Idee gekommen, einfach den Zeitpunkt der Erstellung eines wichtigen Systempfads (z.b. c:\windows) zu nehmen und den zu hashen. Ist auch recht unwahrscheinlich dass die Zeitstempel auf mehreren Rechnern absolut identisch sind.

Unter Windows hat das funktioniert. Einfach "dir /TC c:\windows" gemacht, Ausgabe geparst und gut ist.

Aber Linux scheint sich nicht für das Erstell-Datum zu interessieren und merkt sich das nicht. Das Datum eines Verzeichnisses ändert sich wenn man darin eine Datei ändert oder anlegt --> doof.

Jetzt gehen mir wieder die Ideen aus.
Fällt noch jemand ein "Verfahren" ein, das kein JNA/JNI braucht (zur not geht das parsen eines betriebssystemeigenen Kommandozeilentools) und auf Windows, Linux und Mac anwendbar ist?!

Gruß
Alex
 

Zed

Bekanntes Mitglied
Ich würde ja sagen ab besten irgend eine ID die man aus der Hardware ausliest CpuId oder so aber wir reden von Java.

Bezieh dich evtl. auf eine Datei unter Linux die immer existiert
 
T

tuxedo

Gast
Was verstehst du unter "auf eine Datei beziehen"?

/etc gibts eigentlich immer. /usr/bin/ wohl auch.
Das wären aber Verzeichnisse. Auf Dateien selbst beziehen ist "gefährlich", da sie wohl auch durch Updates aktualisiert werden können.

Der "Erstell-Zeitstempel" eines Verzeichnisses existiert wie gesagt unter Linux nicht, wohl aber unter Windows. Im Falle von Windows könnte ich es ja so belassen. Aber woran mach ich das in Linux/MacOS fest?

Gibts vllt. in /proc oder so eine Datei die sich garantiert nie ändert?

- Alex
 

HoaX

Top Contributor
Wie wäre es mit der Filesystem-ID? Oder auf aktuellen Systemen die FS-UUID des Rootfilesystems?

stat -c %i /
vol_id /dev/sda1

Ansonsten fällt mir noch udevinfo ein, darüber kommst du auch an Seriennummern und sonsten Kram der Hardware.
z.B. udevinfo -q all -n /dev/sda
 
Zuletzt bearbeitet:
T

tuxedo

Gast
Ich denke udevinfo ist am brauchbarsten. Vorher mit "mount" schauen welches Device auf "/" gemounted ist, das dann in udevinfo stecken, und die gesamte ausgabe hashen... Fertig.

Weißt du zufällig wie's mit der Verbreitung von udevinfo bei Standardinstallationen diverses Linux Derivate aussieht? Sprich: Wie sicher ist es, dass der Befehl existiert?

Gruß und soweit mal Danke,

Alex

[update]

Ähm, noch was: Wie sicher ist es dass udevinfo auch in einer aktuelleren Version (wieder das Update-Szenario) noch die gleiche Ausgabe liefert?

Andere Frage: Komm ich an solche Informationen auch ohne extra "Programm" ran? Also z.B. via /proc oder so ?!
 
Zuletzt bearbeitet von einem Moderator:

HoaX

Top Contributor
Ich denke udevinfo ist am brauchbarsten. Vorher mit "mount" schauen welches Device auf "/" gemounted ist, das dann in udevinfo stecken, und die gesamte ausgabe hashen... Fertig.

Weißt du zufällig wie's mit der Verbreitung von udevinfo bei Standardinstallationen diverses Linux Derivate aussieht? Sprich: Wie sicher ist es, dass der Befehl existiert?

udev kam mit Beginn der 2.5/2.6er Kernel, ist also schon ein paar Jahre her. Nomale Desktops sollten es haben, bei Servern wäre ich mir nicht so sicher.

Ähm, noch was: Wie sicher ist es dass udevinfo auch in einer aktuelleren Version (wieder das Update-Szenario) noch die gleiche Ausgabe liefert?

Andere Frage: Komm ich an solche Informationen auch ohne extra "Programm" ran? Also z.B. via /proc oder so ?!
Auf immer die selbe Ausgabe würde ich mich nicht verlassen wollen. Gezielt einzelne Werte raussaugen ist besser imo. An die ganzen Werte solltest du auch über /proc bzw /sys kommen, allerdings stehen die da auch nicht immer so schön als Klartext wie bei udevinfo ... und setzt natürlich ebenso einen 2.6er Kernel voraus.


edit: evtl. interessant für dich: http://www.kroah.com/linux/talks/ols_2003_udev_paper/Reprint-Kroah-Hartman-OLS2003.pdf
 
Zuletzt bearbeitet:
T

tuxedo

Gast
Hi,

2.6er Kernel kann ich vorraussetzen. Server kann ich ausschließen. Von daher passt das.

"Immer einen speziellen Wert rauspicken": Naja, wenn sich die Formatierung der Ausgabe ändert, klappt das mit dem rauspicken nicht mehr so.

Da hab ich dann lieber etwas kryptisches das immer an der gleichen Stelle liegt und immer gleich ist/bleibt.

Werd mir die PDF mal zu gemüte führen. Danke soweit mal.

Gruß
Alex
 

HoaX

Top Contributor
Einzelne Zeilen bleiben schon gleich, nur auf die Gesamtformatierung und Reihenfolge ... würde ich mich nicht verlassen wollen. Wir greppen z.B. die Seriennummer von USB-Sticks aus der Ausgabe und gab bisher nicht wirklich Probleme damit.
 
T

tuxedo

Gast
Hab nochmal geschaut. Eine Menge informationen zu Festplatten etc. lassen sich aus /sys/... Unter anderem Hersteller und Modell der Platte. Während udevinfo die Seriennummer der Platte rausbekommt, hab ich sie im /sys/ Pfad vergeblich gesucht.

Jetzt ist nur noch die Frage wie man am besten an die Root-Platte dran kommt. Sprich: Woher weiß ich dass "/" nach /dev/sda1 oder /dev/hda1 eingehängt ist?

"mount" parsen wäre eine Möglichkeit. /etc/fstab parsen eine andere. Oder hat jemand eine zuverlässigere, einfachere Idee?


- Alex
 

fjord

Bekanntes Mitglied
Mal ganz dumm gefragt: wenn du eh schon eine Client Server Architektur hast, warum vergibt der Server dann nicht einfach eindeutige IDs an neue Clients, diese speichern die sich irgendwo und melden sich dann beim nächsten mal wieder damit?
 
T

tuxedo

Gast
Das hab ich mir auch schon überlegt. Aber dann bin ich abhängig von dieser gespeicherten ID. Mal abgesehen davon, dass der Client mit "Normal Benutzer" Rechten läuft und ich keine zentrale Stelle am Client habe wo alle Benutzer gleichermaßen schreiben können (ok, ließe sich einrichten, aber das kann ich nicht vorraussetzen. Ich kann nur ein "Standardsystem" vorraussetzen), fällt diese Technik eben flach.

Pro Rechnerbenutzer ginge das. Aber mit gehts wirklich um den Rechner/Client, und nicht um den Benutzer.

- Alex
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Suche nach String mit unbekannten characters Allgemeine Java-Themen 53
M Binäre Suche Allgemeine Java-Themen 6
M geometrische Suche Allgemeine Java-Themen 8
S Programm schreiben, das mir aufgrund von Schlagwörtern, die ich im Internet suche, relevante Themen sofort anzeigt. Allgemeine Java-Themen 1
I HTML / XHTML Seite nach Excel exportieren. Suche Lib Allgemeine Java-Themen 12
W Suche Ursache für NPE - woher kommt sie? (Hilfe beim Debugging) Allgemeine Java-Themen 19
W Collections Suche Collection, um Strings mit Indizees versehen Allgemeine Java-Themen 47
O Suche Scripter für alt:V Project! Allgemeine Java-Themen 0
D Suche Quellcode! Allgemeine Java-Themen 8
O Suche Unterstützung für ein OpenSource-Projekt (grafischer Editor) Allgemeine Java-Themen 13
B Bei Email: FW / AW... - Hilfe bei String suche Allgemeine Java-Themen 21
J Suche Alternative zu Jasper Reports Allgemeine Java-Themen 4
W Collections Suche etwas Sorted-List-Artiges...hat jemand eine Idee? Allgemeine Java-Themen 13
M Suche Alternative zu JFreeChart Allgemeine Java-Themen 11
S Warmup für Lineare-Suche mit Zeitmessung Allgemeine Java-Themen 2
K OOP Suche Hilfe + Erklärung für eine Hausaufgabe Allgemeine Java-Themen 1
B Suche nach einem Testprogramm für meine BA Allgemeine Java-Themen 0
D Objekt-Suche mit mehreren optionalen Parametern Allgemeine Java-Themen 6
A NetBeans Suche Programmierer für eine Belegarbeit Allgemeine Java-Themen 11
O Suche größeres Beispiel für WebserverAnwendung mit Java Allgemeine Java-Themen 2
G Google-Suche ist nicht auslesbar?! Allgemeine Java-Themen 18
M Suche aktuelle Apache Poi Bibliothek zum Einbinden in mein Programm Allgemeine Java-Themen 2
L Suche nach CalDav Server API Allgemeine Java-Themen 0
HarleyDavidson Best Practice Suche "Container" für Modulapplikationen Allgemeine Java-Themen 0
S Suche Konzept: Korrektheit des Aufrufers feststellen Allgemeine Java-Themen 7
KaffeeFan Methoden Suche Methode um Programm kurz warten zu lassen Allgemeine Java-Themen 22
B Suche geeignete Datenstruktur Allgemeine Java-Themen 5
L Erste Schritte Suche Java Wiki System? Allgemeine Java-Themen 5
L Suche Geräte für Java SE Embedded Allgemeine Java-Themen 0
S Rekursive Suche in einem Netz Allgemeine Java-Themen 5
F Über Java Google Suche nutzen Allgemeine Java-Themen 11
A Suche Android Programmierer Allgemeine Java-Themen 0
W Suche Framework zur Prüfung von IPv4 und IPv6 Allgemeine Java-Themen 2
A Java - Suche nach Datensatz mit DateChooser Allgemeine Java-Themen 0
S Pattern.Match Suche: For Schleife einbinden und in Liste schreiben Allgemeine Java-Themen 3
M Suche Framework/API für Monitoring-Anwendung Allgemeine Java-Themen 3
F Suche kostenlose GUI für Eclipse Allgemeine Java-Themen 10
H Suche mit Wildcards und boolschen Operatoren Allgemeine Java-Themen 4
B Suche passende Datenstruktur für 2 Einträge Allgemeine Java-Themen 19
A Binäre Suche im Array mit StackOverflowError Allgemeine Java-Themen 3
T Verkettete Suche Allgemeine Java-Themen 6
S RxTx - langsame Port suche Allgemeine Java-Themen 3
D Suche Matrix Libraries Allgemeine Java-Themen 11
S Suche Dependency Injection Container Allgemeine Java-Themen 6
J Suche: Tool zum Auffinden gleichnamiger Klassen (Name und Package gleich) in unteschiedlichen JARs Allgemeine Java-Themen 5
BinaryLogic Input/Output Suche Wörterbuch-Datei Einzahl/Mehrzahl Allgemeine Java-Themen 2
A Suche Algorithmus zum Erstellen eines planaren Graphen Allgemeine Java-Themen 5
D Suche Librarys ähnlich datatables.net + Login Allgemeine Java-Themen 3
Gossi Threads Suche ein (einfaches) Beispiel Allgemeine Java-Themen 5
P Erste Schritte Suche in ArrayList mit Maps Allgemeine Java-Themen 4
F Suche Performanceoptimierung bei Stringsortierung Allgemeine Java-Themen 51
B Suche Datenquelle für lizenz-informationen Allgemeine Java-Themen 5
J Lucene suche in Json (CouchDB) Allgemeine Java-Themen 2
X Suche Softwareimplementierung von Cryptographischen Algorithmen Allgemeine Java-Themen 3
S Suche Tipps für Einstieg in JavaCC Allgemeine Java-Themen 2
R Suche in logfiles mit Lucene / Solr Allgemeine Java-Themen 2
P Suche Datenstruktur Allgemeine Java-Themen 2
M Suche Java-Projekt zum Thema Elektrotechnik Allgemeine Java-Themen 6
F Suche Begriff Allgemeine Java-Themen 2
hdi Suche Icon-Sammlung Allgemeine Java-Themen 7
G Suche "richtiges" Framework/Library Allgemeine Java-Themen 14
slawaweis Suche Klassen für Event Managment und Time Allgemeine Java-Themen 2
P Probleme mit wikipedia quellcode zur binären Suche Allgemeine Java-Themen 6
C Suche Permutationsalgo Allgemeine Java-Themen 6
E Suche nach Foto-Dummy Allgemeine Java-Themen 8
B Suche Paket zum auslesen von Metadaten von Bildern. Allgemeine Java-Themen 4
N suche globale Tastenabfrage Allgemeine Java-Themen 6
P SUCHE: gute Geo Library (freeware) Allgemeine Java-Themen 2
P Suche performante PDF Library Allgemeine Java-Themen 20
data89 Bilder mit Java prüfen - suche dringend Hilfe Allgemeine Java-Themen 8
faetzminator Regex zur Suche von "value-losen" Attributen in HTML Tags Allgemeine Java-Themen 7
S Suche im JTree nach Neuaufbau Allgemeine Java-Themen 4
W Problem bei der Suche (binarySearch) vom deutschen Sonderzeichen "ß" im einem Array Allgemeine Java-Themen 6
D Suche nach passender Datenstruktur Allgemeine Java-Themen 4
S suche library die diagramme darstellen kann Allgemeine Java-Themen 2
P WebSerive Suche Allgemeine Java-Themen 15
hdi Suche nach Begriff aus der Programmierung Allgemeine Java-Themen 11
X Suche Java Klasse die Feiertage berechnen kann Allgemeine Java-Themen 2
B suche Deutsche Übersetzung für neuste Eclipse Version Allgemeine Java-Themen 6
Daniel_L Suche nach ganzen Wörtern (wholeword) in Strings? Allgemeine Java-Themen 4
G Regex-Suche nach Worten Allgemeine Java-Themen 3
Antoras Suche Projektarbeit für Gruppe mit 3 Leuten Allgemeine Java-Themen 5
G Perfomante Suche in grosser Datei Allgemeine Java-Themen 6
T Suche Tool Allgemeine Java-Themen 11
D Suche sowas wie Map nur für mehrere Werte Allgemeine Java-Themen 13
D Suche Hilfe zum Rechnerübergreifenden Dateizugriff. Allgemeine Java-Themen 3
M suche speziellen Sortieralgorithmus Allgemeine Java-Themen 3
E javax.comm: Suche eine open source Alternative zu rxtx Allgemeine Java-Themen 8
J Suche regex-Pattern fuer Liste von Zahlen zwischen 0-100 Allgemeine Java-Themen 6
T Suche den großen Calendar Thread ! Allgemeine Java-Themen 2
P Suche Benis IP/Netzwerkadresse JTExtField Allgemeine Java-Themen 2
J Suche Doku um generischen Code zu erstellen. Allgemeine Java-Themen 9
G suche Property alternative Allgemeine Java-Themen 4
C Fehler im Quellcode. Suche in einem Baum Allgemeine Java-Themen 3
S Suche Pendant zu einem VB Befehl Allgemeine Java-Themen 2
T Suche gute JAVA Steuerelemente Allgemeine Java-Themen 2
V Suche RegEx zu (gelöstem) Problem Allgemeine Java-Themen 3
B Suche Browser-Control Allgemeine Java-Themen 4
G Suche Programmierumgebung mit Appletviewer Allgemeine Java-Themen 16
G Suche kostenlosen c++ to java converter. Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben