Bonjour à tous,
j'ai une question qui peut être intéressante pour vous. Je cherche à récupérer la mac adresse de ma machine (qui me sert de serveur). J'aimerais autant que possible éviter les méthode natives tels que:
- ipconfig /all
- if config
Pour cela j'ai trouvé que depuis la JDK 1.6, on peut récupérer cette dernière grâce à:
et voici la méthode pour convertir la mac sous un format de string XXXXXX (donc sans séparateur).
Code : 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
17 ....... try { InetAddress address = InetAddress.getLocalHost(); NetworkInterface ni = NetworkInterface.getByInetAddress(address); byte[] macb = ni.getHardwareAddress(); String mac = toHexaString(macb); linfo.setText("MAC serveur : "+mac+" | ip : "+address.getHostAddress()); } catch (UnknownHostException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } ......
Cela marche a merveille sur Windows, mais dès que je le porte sous linux (Ubuntu dernière version stable), il ne fonctionne pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public String toHexaString(final byte[] bytes) { final int len = bytes.length; if (len==0) { return ""; } final StringBuilder builder = new StringBuilder( (len*2) + (len-1) ); for (int i=0; i<len; i++) { builder.append( String.format("%02X", bytes[i]) ); } return builder.toString(); }
Il me semble que j'ai vu quelque part sur le site de sun, que ça ne marchais pas sur linux, mais je ne retombe pas sur l'url...
Est ce que quelqu'un aurais des informations ou un moyen qui utiliserais les inetaddress ou quelque chose plus ou moins similaire?
D'avance merci
Moufassa
Partager