Bonjour,
Je cherche comment on peut générer un identifiant unique lié à ma machine physique en Java. Pouvez-vous m'aider ?
Je vous remercie d'avance pour votre aide.
Version imprimable
Bonjour,
Je cherche comment on peut générer un identifiant unique lié à ma machine physique en Java. Pouvez-vous m'aider ?
Je vous remercie d'avance pour votre aide.
Peut être peux-tu utiliser l'adresse MAC de la carte réseau ?
ou le numéro de série de la carte mère... ça doit être récupérable ça non ?
L'adresse MAC nécessite d'être sur un réseau local. On ne peut pas la récupérer pour une machine quelconque située sur Internet. Quant au numéro de série de la carte mère, je doute qu'on puisse l'obtenir sans passer par une API native écrite en C (et donc par JNDI)... C'est comme lorsqu'on veut récupérer la RAM, la vitesse du processeur, et les autres informations systèmes de ce genre...Citation:
Envoyé par Davboc
Ok, mea culpa je faisais juste des suggestions ^^
Donc si je comprends bien, il n'est pas possible, en java et seulement en java, de trouver ou creer un identifiant unique lie a la machine ?
Si t'as une base de données à la limite ou tous les identifiants seraient stockés... Mais bon... c'est un peu sortir la tronconneuse pour couper le beurre ^^
Quoique ça dépend de ton besoin
Mon besoin est de creer une application qui soit capable de me signaler, de facon unique, sur quel poste elle est installee.
Beuh... A la limite si la machine est connectée au réseau on peut utiliser son adresse ip...
Non car elle n'est pas forcément unique dans l'absolu. à un instant t oui mais la même adresse peut être affectée à une autre machine une heure plus tard.
Je vois pas d'autre moyen que ceux que j'ai proposé, peut être peux tu récupérer le nom de la machine, mais rien ne garantit qu'il soit unique.
Cependant ça m'interesse de voir les réponses que peuvent te proposer d'autres ;)
Ton appli tourne sur internet ? Sur un intranet ? Tu maîtrises toutes les machines ?
Plus de précisions permettraient sans doute de faciliter la recherche de solutions
Pour connâitre le nom de la machine serveur (non cliente) tu peux utiliser cette méthode :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 import java.net.InetAddress; private String getCurrentHost() { try { InetAddress host=InetAddress.getLocalHost(); return host.getHostName(); } catch (java.net.UnknownHostException e) { System.err.println("[ERROR] Impossible de determiner le host courrant : "+e.getMessage()); return "UnknowHost"; } }
Le principe de l'adresse ip peut s'appliquer si les machines sur lesquelles l'application est susceptible d'être installée sont des machines connectées à Internet et disposant d'adresses ip fixes.
Malheureusement c'est rarement le cas, et qui plus est dans le cas d'Internet il n'est pas aisé de remonter jusque la machine cliente. On remonte souvent uniquement jusqu'au DSLAM ou même encore plus loin. Et rien n'empêche d'avoir un pool de machine derrière un routeur qui met en place du NAT, auquel cas 1 adresse IP peut désigner en réalité N machines.
Reste à savoir si ce besoin d'identification est juste à titre d'information ou est impliqué dans le fonctionnel de l'application.