Connaitre les adresses IP de sa machine avec Java

Aller en bas

Connaitre les adresses IP de sa machine avec Java Empty Connaitre les adresses IP de sa machine avec Java

Message  Gus le Mer 15 Déc - 12:24

Pendant longtemps j'ai cru que ma machine ne disposait que d'une seule adresse ip et qu'elle était simplement accessible en Java par le code :
String address = InetAddress.getLocalHost().getHostAddress();

Quand j'étais directement connecté à Internet par le modem 56k, en liaison directe, j'obtenais mon adresse ip publique qui permet aux autres internautes de me retrouver sur Internet... Mais les modems actuels font aussi passerelle, routage, wifi... (notions encore un peu floues pour moi...), ce qui permet à plusieurs ordinateurs de profiter de la connexion Internet via un réseau local.

Bref, tout ça pour dire qu'un ordinateur possède généralement plusieurs adresses ip :
Une adresse ip privée (pour le réseau local, commençant habituellement par 192.168....)
Une adresse ip publique (visible depuis Internet), qu'on peut connaître grâce au site web : http://www.whatismyip.com/

Et bien sûr, la méthode InetAddress.getLocalHost() renvoie l'adresse ip privée (192.168.0.3 dans mon cas)
Donc, il me reste à comprendre par quel moyen on peut accéder à notre adresse ip publique !
Pour l'instant je suis à la recherche d'une solution et je ne manquerai pas de vous donner les résultats de ma recherche. Rolling Eyes

J'ai déjà regardé ceci : http://java.developpez.com/faq/java/?page=reseau#RESEAU_ip
mais ça n'a pas donné ce que je voulais...

Si vous avez des idées ...
Gus
Gus
Admin

Messages : 249
Date d'inscription : 01/09/2009

Voir le profil de l'utilisateur http://www.gus05.com

Revenir en haut Aller en bas

Connaitre les adresses IP de sa machine avec Java Empty Re: Connaitre les adresses IP de sa machine avec Java

Message  Gus le Mer 15 Déc - 12:30

Bon, apparemment, ce n'est pas évident de connaitre son adresse ip publique (même sans Java)
Pour preuve :
http://www.commentcamarche.net/faq/8734-comment-connaitre-son-adresse-ip-publique
Gus
Gus
Admin

Messages : 249
Date d'inscription : 01/09/2009

Voir le profil de l'utilisateur http://www.gus05.com

Revenir en haut Aller en bas

Connaitre les adresses IP de sa machine avec Java Empty Re: Connaitre les adresses IP de sa machine avec Java

Message  Gus le Mer 15 Déc - 14:40

Bien, je suis arrivé à la conclusion qu'on ne peut connaître son adresse ip publique qu'en la demandant à un serveur situé sur Internet... (mais je serais heureux que vous me contredisiez en me proposant d'autres solutions)

Qu'à cela ne tienne, j'ai placé sur mon serveur un petit script php qui affiche l'adresse ip du visiteur :

<?
echo $_SERVER["REMOTE_ADDR"];
?>


Voici le lien url : http://yveran.ephian.net/test/ipaddress.php

En utilisant ce lien, il suffit donc de faire en Java :


private String retrievePublicIP() throws IOException
{
URL url = new URL("http://yveran.ephian.net/test/ipaddress.php");

HttpURLConnection con = (HttpURLConnection) url.openConnection();
InputStreamReader isr = new InputStreamReader(con.getInputStream());
BufferedReader rd = new BufferedReader(isr);

String line = rd.readLine();
rd.close();

return line;
}


Si vous êtes intéressé par cette technique, vous pouvez naturellement utiliser mon lien mais libre à vous aussi de créer votre propre script et de le mettre sur votre serveur si vous en avez un.
Gus
Gus
Admin

Messages : 249
Date d'inscription : 01/09/2009

Voir le profil de l'utilisateur http://www.gus05.com

Revenir en haut Aller en bas

Connaitre les adresses IP de sa machine avec Java Empty Re: Connaitre les adresses IP de sa machine avec Java

Message  Gus le Lun 14 Fév - 12:25

En fait, l'adresse publique renvoyée par http://www.whatismyip.com/ n'est pas spécifique à un poste en particulier dans le réseau intranet mais correspond plutôt à l'unique adresse visible depuis Internet, celle du routeur qui fait le lien entre votre réseau et Internet.

Alors comment adresser de manière formelle un poste du réseau intranet pour qu'il puisse communiquer avec d'autres postes par Internet ? La réponse se trouve apparemment dans le protocole NAT (Network Address Translation)...

http://fr.wikipedia.org/wiki/Network_address_translation
Gus
Gus
Admin

Messages : 249
Date d'inscription : 01/09/2009

Voir le profil de l'utilisateur http://www.gus05.com

Revenir en haut Aller en bas

Connaitre les adresses IP de sa machine avec Java Empty Re: Connaitre les adresses IP de sa machine avec Java

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum