Connaitre les adresses IP de sa machine avec Java
Projet gus05 de développement Java :: Chantiers :: Chantiers techniques :: Transfert des données :: Connexion réseau
Page 1 sur 1
Connaitre les adresses IP de sa machine avec Java
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.
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 ...
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.
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 ...
Re: Connaitre les adresses IP de sa machine avec Java
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
Pour preuve :
http://www.commentcamarche.net/faq/8734-comment-connaitre-son-adresse-ip-publique
Re: Connaitre les adresses IP de sa machine avec Java
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.
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.
Re: Connaitre les adresses IP de sa machine avec Java
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
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
Sujets similaires
» Afficher des images avec Java
» SSH avec l'API Java Secured Channel
» Ecrire un fichier BMP avec Java Advanced Imaging (JAI)
» Obtenir la semi-transparence avec Java Native Access
» API Java pour gérer les connexions aux ports USB : Java Communications
» SSH avec l'API Java Secured Channel
» Ecrire un fichier BMP avec Java Advanced Imaging (JAI)
» Obtenir la semi-transparence avec Java Native Access
» API Java pour gérer les connexions aux ports USB : Java Communications
Projet gus05 de développement Java :: Chantiers :: Chantiers techniques :: Transfert des données :: Connexion réseau
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|
Mar 16 Sep - 12:01 par Gus
» Présentation du jeu Vindinium
Jeu 20 Fév - 15:32 par Gus
» Rechercher la cible la plus proche avec le "Breadth First Search"
Jeu 20 Fév - 13:06 par Gus
» Impression d'écran avec sélection de zone
Jeu 20 Fév - 12:12 par Gus
» Envoyer un mail par un compte Gmail
Jeu 25 Avr - 14:04 par Gus
» Streaming : comment télécharger les vidéos
Lun 4 Fév - 19:59 par Gus
» Synology : installer ipkg
Mar 22 Jan - 21:22 par Gus
» Trouver le type de lecteur avec JNA
Mer 9 Jan - 23:11 par Gus
» Adresse ip publique et adresse ip privée, Internet box et UPnP
Mer 9 Jan - 21:02 par Gus
» Accéder au numéro de série du lecteur par un script vb
Mer 9 Jan - 19:31 par Gus