Bonjour à tous,
connaissez-vous une fontion Java retournant l'adresse MAC de la machine sur laquelle est executé le programme ?
Merci à vous
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 java.net.NetworkInterface ni = java.net.NetworkInterface.getByInetAddress(address); byte[] mac = ni.getHardwareAddress();
ça marche pas, NullPointerException
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 ?
j'arrive à l'afficher avec des int, mais je voudrais le voir en hexadécimal...
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 java : Sélectionner tout - Visualiser dans une fenêtre à part
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) ? "-" : ""); } } }
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager