1

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
avatar
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" ?

2

3

127.0.0.1 dehors
avatar

4

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.)
avatar
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" ?

5

Ymox (./4) :
Ce que j'aimerais, c'est que le programme détermine à son lancement mon adresse IP pour pouvoir la communiquer à un serveur
Tu n'as pas besoin de donner l'IP au serveur, il la connait quand tu t'y connectes smile
avatar

6

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
avatar
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" ?

7

si windows -> chépo
si linux: gethostbyname(localhost) ? getaddrinfo? fais des mans!

8

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...
avatar
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" ?

9

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.
avatar

10

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é.
avatar

11

désolé j'avais pas vu que c'était en java #shy#

12

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
avatar
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" ?