Ymox Le 02/04/2007 à 08:05 Bonjour,
Je cherche les instructions pour obtenir l'adresse IP de l'ordinateur sur lequel va tourner mon programme. J'ai déjà essayé les instructions getLocalHost() et getHostAddress(), mais celles-ci combinées me retournent l'adresse IP d'une autre machine, je crois que c'est celle du serveur de mon provider...
Quelqu'un pourrait m'aider SVP ?
Merci

Je sais qu'il y a marqué "con" sur ma gueule. Je suis né comme ça, je m'y fais. Mais pourquoi toutes les filles qui me plaisent se sentent obligées de rajouter le suffixe "-fident" ?
Ymox Le 02/04/2007 à 12:17 Euh... Que ce soit sous Linux ou Windows, c'est la même chose, si c'est mon programme qui va la chercher, non ?
Ce que j'aimerais, c'est que le programme détermine à son lancement mon adresse IP pour pouvoir la communiquer à un serveur, et que je n'aie pas besoin d'entrer "à la main" l'adresse IP quelque part, que ce soit une fois pour toutes ou à chaque lancement...
(Je programme sous Linux.)

Je sais qu'il y a marqué "con" sur ma gueule. Je suis né comme ça, je m'y fais. Mais pourquoi toutes les filles qui me plaisent se sentent obligées de rajouter le suffixe "-fident" ?
Ymox Le 02/04/2007 à 14:21 Oui, mais ça, je ne suis pas censé le savoir dans ce que je fais ! Le protocole stipule que l'adresse IP doit être envoyée par mon programme pour que le serveur m'enregistre...
C'est vrai que ça peut paraître idiot de faire ainsi, mais voilà, si quelqu'un pouvait m'aider, ce serait sympa

Je sais qu'il y a marqué "con" sur ma gueule. Je suis né comme ça, je m'y fais. Mais pourquoi toutes les filles qui me plaisent se sentent obligées de rajouter le suffixe "-fident" ?
si windows -> chépo
si linux: gethostbyname(localhost) ? getaddrinfo? fais des mans!
Ymox Le 03/04/2007 à 07:46 Je cherche les méthodes Java qui pourraient me renvoyer l'adresse IP correcte ! Sinon, je ne pense pas que j'aurais posté ça dans cette section...

Je sais qu'il y a marqué "con" sur ma gueule. Je suis né comme ça, je m'y fais. Mais pourquoi toutes les filles qui me plaisent se sentent obligées de rajouter le suffixe "-fident" ?
Uther Le 03/04/2007 à 08:58 Bon pour la solution a l'arrache, tu dois pouvoir utiliser Runtime.getRuntime().exec("ifconfig").getOutputStream();
et lire le résultat la dedans mais c'est très moche et pas vraiment JAVA.
Uther Le 03/04/2007 à 09:12Edité par Uther le 03/04/2007 à 10:41 et apres un survol de 30 secondes de la doc, il me semble avoir trouvé ce qui t'intéresse: la classe NetworkInterface disponible sur JDK 1.4 et plus dans le package java.net.
A vue de nez, il te faut un mesInterfaceReseau = NetworkInterface.getNetworkInterfaces() ;
Tu obtiens la liste de tes interfaces réseau, Il faudra choisir la bonne. La pluspart des ordinateurs n'en font pas la collection, mais dans certains cas il peut y en avoir plusiers, il te faudra sans doute aussi ignorer l'interface de loopback. A toi de voir comment déterminer celle qui t'intéresses.
Une fois choisi l'interface qui te concerne, fais un monInterfaceResau.getInetAddresses(); .
La encore tu obtiens une énumération mais je pense qu'il devrait n'y avoir qu'un seul élément vu que je ne connais pas d'interface réseau courante qui aie plusieurs adresses.
Regarde la Doc de la classe, ça n'a vraiment pas l'air compliqué.
désolé j'avais pas vu que c'était en java #shy#
Ymox Le 26/04/2007 à 13:55 Oui, je sais, c'est presque du déterrage, mais voilà, il me semblait sympa de vous dire merci, et que j'ai résolu mon problème.
ServerSocket.getLocalAddress().getHostAddress();
ServerSocket.getLocalPort(); (pour le cas où ce n'est pas un port "standard")
Du coup, je peux même avoir l'adresse complète du serveur auquel je suis connecté :
ServerSocket.getInetAddress().getHostAddress();
ServerSocket.getPort());
[Edit] Noms de classes incorrects

Je sais qu'il y a marqué "con" sur ma gueule. Je suis né comme ça, je m'y fais. Mais pourquoi toutes les filles qui me plaisent se sentent obligées de rajouter le suffixe "-fident" ?