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:
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. :aie:Code:
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