Bonjour,
En java il est possible d'accéder à certaines variables systèmes mais est-il possible de récupérer l'adresse MAC de la machine ?
Merci d'avance pour votre aide.
Bonjour,
En java il est possible d'accéder à certaines variables systèmes mais est-il possible de récupérer l'adresse MAC de la machine ?
Merci d'avance pour votre aide.
Salut,
Je ne crois pas que ce soit possible en pur Java...
Il faut utiliser JNI
a++
J'ai retrouver un truc que j'avais vu sur le site de SUN
How can i retrieve a client's MAC address
Ca ne marche que avec windows, et en francais ... mais la il suffit juste de modifier la commande a executer en fonction de l'OS
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87 import java.io.BufferedInputStream; import java.io.IOException; import java.io.InputStream; import java.util.StringTokenizer; public class MACAddressCommon { static public void main(String[] args) { System.out.println("Debut main"); String[] cmd = { "cmd.exe", "/c", "ipconfig /all" }; try { Process ps = Runtime.getRuntime().exec(cmd); System.out.println("Fin execution de la commande"); String output = loadStream(ps.getInputStream()); StringTokenizer st = new StringTokenizer(output, "\n"); System.out.println("Traitement du retour de la commande"); int i = 1; String line = ""; String MAC_Address = ""; System.out.println("Debut traitement du retour de la commande"); while (st.hasMoreTokens()) { line = st.nextToken(); System.out.println("Valeur de line"+line); if (line.trim().startsWith("Adresse physique")) { MAC_Address = getMACAddress(line.trim()); System.out.println("MAC_Address=" + MAC_Address); break; } //System.out.println("Token "+(i++)+":"+ line); } System.out.print(loadStream(ps.getErrorStream())); } catch (IOException ioe) { System.err.println("Erreur IO" + ioe.getMessage()); ioe.printStackTrace(); } System.out.println("FIN main"); } // read an input-stream into a String static String loadStream(InputStream in) throws IOException { System.out.println("Debut de loadStream"); int ptr = 0; in = new BufferedInputStream(in); StringBuffer buffer = new StringBuffer(); while ((ptr = in.read()) != -1) { buffer.append((char) ptr); } System.out.println("Fin de loadStream"); return buffer.toString(); } static String getMACAddress(String line) { System.out.println("Debut de getMACAddress"); StringTokenizer st = new StringTokenizer(line, ":"); String MAC_Address = ""; while (st.hasMoreTokens()) { MAC_Address = st.nextToken(); }//getMACAddress System.out.println("Fin de getMACAddress"); return MAC_Address.trim(); } } /********************************************************************************************************************************* * Notice *********** * * The command array {"cmd.exe","/c","ipconfig /all"} means entering ipconfig /all commmand at the command line; * * This program is modified from the code posted in a forum http://forums.devshed.com/t59123/s.html * */
et de la langue de l'OS
Code : Sélectionner tout - Visualiser dans une fenêtre à part String[] cmd = { "cmd.exe", "/c", "ipconfig /all" };
ou ce n'est pas Adresse physique mais Physical Address pour un OS en anglais
Code : Sélectionner tout - Visualiser dans une fenêtre à part if (line.trim().startsWith("Adresse physique"))
voila j'espere que ca repond a ce que tu veux faire, j'ai mis des System.out.println pour que tu vois ce qui se passe
Les hommes naissent et demeurent libres et égaux en droits; les distinctions sociales ne peuvent être fondées que sur l'utilité commune
[article 1er Declaration Universelle des Droits de l'Homme]
www.baseball-grizzlys.com
Merci wace!
J'avais effectivement pensé à passer par la commande ipconfig/all, mais j'étais encore en train de me battre à vouloir écrire le flux dans un String...
Merci beaucoup.
Je remonte un très vieux topic, mais vu que quand je me suis intéressé à la question il fait partie des premiers résultats google et du coup fait un peu déprimer, complétons le!
Il semble que depuis cette date ceci est apparu:
http://download.oracle.com/javase/6/...Interface.html
Exemple ici:
http://www.kodejava.org/examples/250.html
Bon ca, je cherchais aussi une solution autre que le shellexec ^^
(Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
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