2016-03-22 4 views
1

Ich möchte die eindeutige Kennung des aktuellen Hosts, der als Lizenzname in Golang verwendet wird. Wie geht das ? Beispiel: C:Wie bekomme ich die eindeutige Kennung des aktuellen Hosts in Golang?

gethostid() //can get the host id 
+1

gethostid (3) gerade gelesen/etc/hostid (und macht einige Hokuspokus wenn nicht verfügbar). Lies einfach/etc/hostid selbst. – Volker

+0

Haben Sie selbst eine Lösung gefunden? Ich versuche das Gleiche umzusetzen, bisher ohne Glück. –

+0

Ich benutze die IP-Adresse, um Hostid zu konvertieren, zum Beispiel: 'ip: 192.168.3.120 -> hostid: a8c07803' – LEo

Antwort

1

Sie wahrscheinlich die Maschine-id wollen.

http://man7.org/linux/man-pages/man5/machine-id.5.html sagt:

Die ID-Maschine in der Regel aus einer Zufallsquelle während Systeminstallation erzeugt wird, und bleibt konstant für alle nachfolgenden Stiefel. Optional, für Stateless-Systeme, wird es während der Laufzeit unter frühen Boot generiert, wenn es leer ist.

Die Maschinen-ID ändert sich nicht basierend auf der lokalen oder Netzwerkkonfiguration oder wenn Hardware ausgetauscht wird. Aufgrund dieser und seiner größeren Länge, ist es ein nützlicher Ersatz für den Gethostid (3) Aufruf, den POSIX angibt.

Sie können die machine-id auf (neue) Linux-Systemen mit bekommen:

cat /etc/machine-id 
# or 
cat /var/lib/dbus/machine-id 

Den meisten großen OSs haben eine eindeutige Host-Kennung. Es gibt jedoch möglicherweise nicht eindeutige Host-IDs (verursacht durch Imaging/Cloning/Backup-Restore).

Sie können auch mein Golang-Paket machineid für Implementierungsdetails überprüfen, die auf BSD, Linux, OS X und Windows funktioniert und keine Administratorrechte erfordert.

Verwandte Themen