Déterminer appareil ip publique
Personne ne sait comment j'ai pu obtenir l'adresse ip publique d'un appareil android?
Je suis en train de lancer un serveur de socket (juste à expérimenter avec de simples p2p).
Cela nécessite d'informer les utilisateurs locaux et distants les uns et les autres ip publique. J'ai trouvé ce fil Comment faire pour obtenir l'adresse IP de l'appareil à partir du code? qui contient un lien vers un article (http://www.droidnova.com/get-the-ip-address-of-your-device,304.html) qui montre comment obtenir l'adresse IP. Toutefois cela renvoie l'adresse ip locale lorsqu'il est connecté via un routeur et j'aimerais recevoir la véritable adresse IP publique au lieu.
TIA
OriginalL'auteur source.rar | 2011-06-10
Vous devez vous connecter pour publier un commentaire.
il suffit de visiter http://automation.whatismyip.com/n09230945.asp et gratter?whatismyip.com est parfait pour obtenir l'adresse IP, si le site les demandes vous ne le frapper environ une fois toutes les 5 minutes.
MISE À JOUR DE FÉVRIER 2015
WhatIsMyIp présente désormais un développeur de l'API que vous pouvez utiliser.
Ou si vous voulez une api avec un nombre illimité d'utilisation: exip.org (les instructions sur le site)
n'whatismyip.com donne l'ip publique
votre premier lien est cassé
en effet, mais il y a maintenant un développeur API
OriginalL'auteur Brad Christie
Analyser l'adresse IP publique de checkip.org (à l'Aide de JSoup):
OriginalL'auteur Eng.Fouad
Pour trouver l'adresse IP publique que vous devez faire appel à un service externe comme http://www.whatismyip.com/ et obtenir l'adresse IP externe de retour en tant que réponse.
OriginalL'auteur Karl-Bjørnar Øie
Dans le cas général, vous ne pouvez pas. Très probablement, l'appareil n'a pas une adresse IP publique (ou au moins, pas un de ceux que vous pouvez ouvrir une connexion à l'). Si c'est la connexion via un routeur NAT, alors il ne sera pas en avoir un.
L'adresse IP renvoyée par un outil comme http://touch.whatsmyip.org/ sera la face publique de l'adresse du routeur NAT, pas de l'appareil.
Plus à domicile et les réseaux d'entreprise utilisation des routeurs NAT, comme le font de nombreux opérateurs de téléphonie mobile.
Pennington: Mais ça n'aide pas si le but est d'utiliser l'adresse IP pour se connecter à un autre périphérique. Mon PC ici se connecte à stackoverflow.com par l'intermédiaire d'un routeur NAT, et il n'y a aucun moyen pour stackoverflow.com (ou quelqu'un d'autre en dehors de mon réseau local) pour ouvrir une connexion à mon PC.
il est possible qu'il envisage d'utilisation du NAT traversal techniques tels que UDP, la perforation; ce t permettre la communication bidirectionnelle via un NAT
Pennington: étant Donné le ton de la question ("juste à expérimenter avec de simples p2p"), je serais surpris. 🙂
s'il lit mon commentaire, il ne sera pas long avant qu'il sera de perforation, même si ce n'était pas son intention initiale 😉
OriginalL'auteur RichieHindle
OriginalL'auteur Gorio
Voici ma façon, je suis en train de faire.
J'ai les enregistrements DNS
ip4 DANS UN 91.123.123.123
ip6 DANS AAAA 1234:1234:1234:1234::1
Puis j'ai un script PHP sur mon PHP site web. (Vous avez besoin d'adapter ce script)
Si je l'appelle ip6.mydomain.com/ip/, j'ai l'IPv6 ip publique. Si je l'appelle ip4.mydomain.com/ip/, j'ai l'IPv4 adresse ip publique.
Puis-je avoir les éléments suivants de la classe java.
OriginalL'auteur Gabriel Klein
- Je utiliser cette fonction pour obtenir l'adresse IP publique, tout d'abord vérifier si il est de la connectivité, puis demande la demande de retour de l'adresse IP publique
Il peut certainement être optimisé, je le laisse pour les maîtres qui contribuent à leurs solutions.
OriginalL'auteur Webserveis
Je suis tout simplement faire un HTTP GET à ipinfo.io/ip
Voici la mise en œuvre:
OriginalL'auteur jose
OriginalL'auteur user3826696
C'est la continuation de Eng.Fouad réponse, qui est par Analyser l'adresse IP publique de checkip.org (à l'Aide de JSoup)::
Méthode (au Cas où si vous recevez une erreur d'exception de méthode précédente):
L'appel de la méthode exemple:
De la compilation suivante de la bibliothèque dans votre construction.gradle dépendances
JSoup est compilé à l'aide de l'API Java Version 8, ajoutez ce qui suit à l'intérieur de construire.gradle defaultconfig.ini.php {}
et changer d'option de compilation:
Dernier mais non le moindre, place code suivant dans le onCreate() la méthode, car par défaut, vous n'êtes pas censé exécuter le fonctionnement du réseau par l'INTERFACE utilisateur (recommandé par l'intermédiaire des services ou AsyncTask) puis de reconstruire le code.
Testé et de travail sur Lolipop et Kitkat.
OriginalL'auteur Muzaffar Mohamed
À l'aide de
org.springframework.web.client.RestTemplate
et Amazon API vous pouvez facilement obtenir votre IP publique.OriginalL'auteur GFuentesDev
et d'appeler n'importe où
CustomHttpClient.java
OriginalL'auteur Deli Coder
- Je utiliser FreeGeoIP, et de recevoir IP->GEO.
Une autre solution de comparer whatismyip
OriginalL'auteur khaintt