Récupérer adresse ip public avec java
Fermé
ami
-
14 mars 2012 à 10:52
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 15 mars 2012 à 08:09
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 15 mars 2012 à 08:09
A voir également:
- Récupérer adresse ip public avec java
- Ethernet n'a pas de configuration ip valide - Guide
- Darkino nouvelle adresse - Guide
- Rechercher ou entrer l'adresse - Guide
- Comment connaître son adresse ip - Guide
- Comment récupérer une adresse mail - Guide
4 réponses
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
3 014
Modifié par KX le 14/03/2012 à 23:15
Modifié par KX le 14/03/2012 à 23:15
J'ai repris l'astuce de le y@m's (dans le lien donné par fiddy), de manière à avoir un code plus simple à comprendre (tout est relatif) et surtout directement utilisable.
import java.net.URL; import java.util.Scanner; public class IP { /** * @param site l'adresse internet d'un site donnant l'adresse IP * @param prefixe le code HTML précédant la valeur de l'adresse IP * @param suffixe le code HTML succédant la valeur de l'adresse IP * @return l'adresse IP trouvée ou null sinon */ public static String findIP(String site, String prefixe, String suffixe) throws Exception { Scanner sc = new Scanner(new URL(site).openStream()); while (sc.hasNextLine()) { String line = sc.nextLine(); int a = line.indexOf(prefixe); if (a!=-1) { int b = line.indexOf(suffixe,a); if (b!=-1) { sc.close(); return line.substring(a+prefixe.length(),b); } } } sc.close(); return null; } public static void main(String...args) throws Exception { System.out.println(findIP("https://www.google.com/search?&gl=us&q=what+is+my+ip+address", "<b>IP Address:</b> <span class=\"ha4\">", "</span><br />")); } }La confiance n'exclut pas le contrôle
irmeche
Messages postés
71
Date d'inscription
jeudi 10 juin 2010
Statut
Membre
Dernière intervention
18 juillet 2014
17
Modifié par irmeche le 14/03/2012 à 22:22
Modifié par irmeche le 14/03/2012 à 22:22
try { String host = InetAddress.getLocalHost().toString().split("/")[1]; System.out.println(host); } catch (UnknownHostException e) { e.printStackTrace(); }
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 833
14 mars 2012 à 22:23
14 mars 2012 à 22:23
Ne confondrais-tu pas avec l'IP privé ???
irmeche
Messages postés
71
Date d'inscription
jeudi 10 juin 2010
Statut
Membre
Dernière intervention
18 juillet 2014
17
Modifié par irmeche le 14/03/2012 à 22:25
Modifié par irmeche le 14/03/2012 à 22:25
il me retourne l'adresse que je trouve avec ipconfig sur windows
Adresse IPv4. . . . . . . . . . . . . .: 172.20.xxx.xxx
Adresse IPv4. . . . . . . . . . . . . .: 172.20.xxx.xxx
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 833
14 mars 2012 à 22:44
14 mars 2012 à 22:44
Oui, ta fonction donne l'IP locale de ta machine. Si elle est connectée directe à internet, ça sera celle du FAI, mais en cas de NAT, ça ne sera pas la bonne. Cela dépend donc de la configuration.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 833
14 mars 2012 à 22:28
14 mars 2012 à 22:28
Cela dépend de ta configuration. Passes-tu par un NAT ? Si c'est le cas, la machine ne connait pas cette adresse. Il faut donc ruser en passant par internet. Tu te connectes sur un site internet te listant l'IP de connection, tu parses l'IP et tu as ta réponse.
irmeche
Messages postés
71
Date d'inscription
jeudi 10 juin 2010
Statut
Membre
Dernière intervention
18 juillet 2014
17
14 mars 2012 à 22:41
14 mars 2012 à 22:41
sinon j'ai trouvé ça:
https://java.developpez.com/faq/javaio?page=Reseaux#RESEAU_ip
ça donne plus d'informations
https://java.developpez.com/faq/javaio?page=Reseaux#RESEAU_ip
ça donne plus d'informations
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 833
14 mars 2012 à 22:45
14 mars 2012 à 22:45
Oui, mais le lien que tu donnes n'est pas l'IP publique (sauf en cas de connexion directe à internet), il s'agit de l'IP locale de la machine. Il s'agit de deux notions différentes.
irmeche
Messages postés
71
Date d'inscription
jeudi 10 juin 2010
Statut
Membre
Dernière intervention
18 juillet 2014
17
14 mars 2012 à 22:46
14 mars 2012 à 22:46
alors montre nous comment faire
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 833
14 mars 2012 à 22:52
14 mars 2012 à 22:52
Je l'a dit, en cas de NAT, la machine n'a pas connaissance de l'IP publique.
Un moyen consiste à récupérer le contenu d'un site internet donnant l'IP publique et de parser le résultat.
Le lien suivant montre comment faire : https://www.developpez.net/forums/d256692/java/general-java/recuperer-adresse-ip-public-java/
Un moyen consiste à récupérer le contenu d'un site internet donnant l'IP publique et de parser le résultat.
Le lien suivant montre comment faire : https://www.developpez.net/forums/d256692/java/general-java/recuperer-adresse-ip-public-java/
irmeche
Messages postés
71
Date d'inscription
jeudi 10 juin 2010
Statut
Membre
Dernière intervention
18 juillet 2014
17
14 mars 2012 à 22:58
14 mars 2012 à 22:58
merci,
c'est normal que cette adresse publique n'arrête pas de changer, elle n'est pas fixe
sur le site https://www.google.com/search?&gl=us&q=what+is+my+ip+address a chaque fois que tu rafraichis, ça te donne une autre adresse
c'est normal que cette adresse publique n'arrête pas de changer, elle n'est pas fixe
sur le site https://www.google.com/search?&gl=us&q=what+is+my+ip+address a chaque fois que tu rafraichis, ça te donne une autre adresse
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 833
14 mars 2012 à 23:12
14 mars 2012 à 23:12
Euh non ce n'est pas normal. N'utiliserais-tu pas un logiciel qui change de proxy ? En tout cas, sur un ordinateur classique, cela fonctionne bien (l'IP publique ne change pas à chaque rafraichissement)
14 mars 2012 à 23:15
15 mars 2012 à 08:09