Ich hatte ein Problem, die MAC-Adresse einer Maschine zu bekommen, die in diese Frage mit dem folgenden Code:
%Vor%Ich würde jedoch gerne wissen, warum dieser Code nicht funktioniert. Bei jedem Lesen der MAC-Adresse wird ein anderer Wert zurückgegeben. Zuerst dachte ich, es sei wegen getHash, vielleicht benutze ich einen Timestamp, den ich nicht kenne ... Aber selbst wenn man es entfernt, ändert sich das Ergebnis.
Code
%Vor%Ausgabebeispiel (ich drucke direkt aus dem Byte-Array, aber es reicht, um das anders zu sehen, denke ich)
%Vor%Vielen Dank im Voraus
B@91cee
ist tatsächlich das Ergebnis toString()
Methode der byte[]
Arrays.
Ich würde vorschlagen, dass Sie den Wert stattdessen mit new String(mac)
ausgeben.
byte[].toString()
ist implementiert als:
Da der Standardwert Object.hashCode()
als Adresse im Speicher implementiert ist, ist er nicht konsistent, da Sie jedes Mal ein neues Object
erstellen.
Bearbeiten:
Da das zurückgegebene Byte in hex steht, sollten Sie es in eine dezimale Zeichenfolge konvertieren. Der Code kann hier
sehenHier ist ein Beispiel von Mkyong.com Website wie man die MAC-Adresse in Java bekommt:
%Vor%Tags und Links java mac-address