Bonjour à tous,
connaissez-vous une fontion Java retournant l'adresse MAC de la machine sur laquelle est executé le programme ?
Merci à vous :)
Version imprimable
Bonjour à tous,
connaissez-vous une fontion Java retournant l'adresse MAC de la machine sur laquelle est executé le programme ?
Merci à vous :)
Ça retourne une des adresses MAC pas l'adresse MAC ;)Code:
1
2 java.net.NetworkInterface ni = java.net.NetworkInterface.getByInetAddress(address); byte[] mac = ni.getHardwareAddress();
ça marche pas, NullPointerException :(Code:
1
2
3 java.net.NetworkInterface ni = java.net.NetworkInterface.getByInetAddress(InetAddress.getByName("127.0.0.1")); byte[] mac = ni.getHardwareAddress(); System.out.println(mac.length);
comme ceci ça marche mieux :)Code:
1
2
3 java.net.NetworkInterface ni = java.net.NetworkInterface.getByInetAddress(InetAddress.getLocalHost()); byte[] mac = ni.getHardwareAddress(); System.out.println(mac.length);
comment on fait pour afficher un tableau de byte ? :oops:
j'arrive à l'afficher avec des int, mais je voudrais le voir en hexadécimal...
Arrays.toString(byte[]), de mémoire ;)
attention que localhost a souvent une mac particulière (genre ff:ff:ff:00:00:00). Le mieux est d'utiliser la mac d'une interface réseau.
Tu peux peut-être utiliser Integer.toHexString(0xFF & b) pour chaque byte b de ton tableau.
Et si tu as besoin de mettre les zéros pour faire 0x01 au lieu de 0x1, là il va falloir te coder une petite méthode toi-même. (ce n'est pas la mort.)
Merci à tous pour vos réponses. Problème résolu :)
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 import java.net.InetAddress; import java.net.NetworkInterface; public class Mac { public static void main(String[] args) throws Exception { InetAddress address = InetAddress.getLocalHost(); NetworkInterface ni = NetworkInterface.getByInetAddress(address); byte[] mac = ni.getHardwareAddress(); for (int i = 0; i < mac.length; i++) { System.out.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""); } } }
:mouarf::mouarf::mouarf::mouarf::mouarf::mouarf::mouarf: