Angenommen, Sie beziehen sich hier auf die traditionelle Unix-Hostid. Wenn ich Software an ein System binden wollte, würde ich einen Dongle oder ein stärkeres Mittel verwenden, um ein System zu identifizieren, das als Hostid angesehen wird. Dies ist sehr willkürlich, aber dennoch.
Die Host-ID wird mit dem Bibliotheksaufruf "gethostid" abgerufen. Es ist lediglich ein generischer Wert, der, wenn er nicht festgelegt ist, auf der IPv4-Adresse des Hostsystems basiert.
Siehe "Mann 2 Gethostid"
Wenn in der glibc-Implementierung gethostid () die Datei mit der Host-ID nicht öffnen kann, erhält es den Hostnamen mit gethostname (2), übergibt diesen Hostnamen an gethostbyname_r (3), um die IPv4-Adresse des Hosts abzurufen, und gibt einen Wert zurück erhalten durch Bit-Twiddling der IPv4-Adresse. (Dieser Wert ist möglicherweise nicht eindeutig.)
Sie können es selbst auf alles einstellen, was Sie möchten, indem Sie die Datei / etc / hostid mit dem gewünschten Wert einrichten (vermutlich entspricht dies dem, was aus dem Programm 'hostid' auf Ihrer Spendenbox hervorgeht).
Das Einstellen ist allerdings ein kleiner Trick. Die Datei benötigte eine gepackte binäre Darstellung der Host-ID.
Ich habe Python verwendet, aber Sie können alles tun. (Ziemlich sicher, dass jemand ein einfacheres Mittel zum Drucken gepackter Bytes kennt.)
from struct import pack
f = open('/etc/hostid', 'w')
f.write(pack('i', 12345))
f.close()
Dadurch wird die Host-ID so festgelegt, dass gethostid denselben Wert wie die Spendenbox wie die Migrationsbox zurückgibt.