J'utilise ce code pour trouver l'adresse MAC d'une machine. Ce code imprime directement l'adresse MAC, mais je veux le renvoyer en tant que chaîne. Je suis complètement confus.Formatage d'un tableau d'octets d'adresse MAC en String
aidez s'il vous plaît.
try {
InetAddress add = InetAddress.getByName("10.123.96.102");
NetworkInterface ni1 = NetworkInterface.getByInetAddress(add);
if (ni1 != null) {
byte[] mac1 = ni1.getHardwareAddress();
if (mac1 != null) {
for (int k = 0; k < mac1.length; k++) {
System.out.format("%02X%s", mac1[k], (k < mac1.length - 1) ? "-" : "");
}
} else {
System.out.println("Address doesn't exist ");
}
System.out.println();
} else {
System.out.println("address is not found.");
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (SocketException e) {
e.printStackTrace();
}
Si vous avez besoin de renvoyer une chaîne formatée de la même manière, utilisez un StringBuilder et ajoutez-y des parties de boucle formatées avec String.format (..). –
Voir http://stackoverflow.com/questions/311165/how-do-you-convert-byte-array-to-hexadecimal-string-and-vice-versa-in-c/632920#632920 – Zaki