77 votes

Obtenir mon IP publique via l'API

Existe-t-il une API publique d'une grande entreprise permettant d'obtenir mon IP public à partir d'un programme ?

J'ai trouvé http://ip-address.domaintools.com/myip.xml ce qui est exactement ce que je veux, mais malheureusement, cela bloque la fonction de Python urllib ainsi que de nombreuses autres bibliothèques http, à moins que vous n'usurpiez l'agent de l'utilisateur (tout ce qui fait cela ne peut pas être appelé une API du tout).

Le problème est que j'ai besoin de ces données pour une bibliothèque potentiellement open source, et que nous devons donc respecter les règles. Je sais aussi que je peux simplement faire quelque chose comme print $_SERVER[REMOTE_ADDR] mais je ne veux pas servir de serveur de trafic à tous ceux qui utilisent ma bibliothèque.

Alors, existe-t-il quelque chose comme l'URL ci-dessus, mais une véritable API, qui permet les robots ?

0 votes

1 votes

Duck Duck Go dispose d'une méthode publique pour déterminer votre adresse IP. Je l'ai détaillée ici, puisque cette question est fermée et que je ne peux pas ajouter de réponse : stackoverflow.com/a/33743758/901641

3 votes

ipify.org est un service alternatif.

96voto

Jamie Wong Points 10858

Bien qu'ils ne proviennent pas de grandes entreprises, ils devraient tous fonctionner :

curl icanhazip.com
curl -s 'http://checkip.dyndns.org' | sed 's/.*Current IP Address: \([0-9\.]*\).*/\1/g'
host -t a dartsclink.com | sed 's/.*has address //'
curl curlmyip.com
curl ifconfig.me # this has a lot of different alternatives too, such as ifconfig.me/host

Source :

1 votes

C'est génial ! Merci beaucoup, surtout pour le dyndnique, ça va le faire !

4 votes

Icanhazip.com renvoie le résultat le plus propre, je pense.

4 votes

También ipinfo.io/ip

42voto

Ben Dowling Points 2849

Vous pouvez obtenir votre IP, et tout un tas d'autres informations, à partir de mon service. http://ipinfo.io :

$ curl ipinfo.io
{
  "ip": "67.188.232.131",
  "hostname": "c-67-188-232-131.hsd1.ca.comcast.net",
  "city": "Mountain View",
  "region": "California",
  "country": "US",
  "loc": "37.385999999999996,-122.0838",
  "org": "AS7922 Comcast Cable Communications, Inc.",
  "phone": 650
}

Si vous voulez juste l'IP :

$ curl ipinfo.io/ip
67.188.232.131

Cela fonctionne également pour d'autres domaines, par exemple :

$ curl ipinfo.io/org
AS7922 Comcast Cable Communications, Inc.

Plus de détails disponibles sur http://ipinfo.io/developers

2 votes

Ne supporte pas HTTPS

0 votes

Les plans payants ont tous un support HTTPS. Voir ipinfo.io/pricing

0 votes

Pas de support IPv6...

17voto

nbari Points 847

En format JSON donnant plus de détails comme le pays et l'agent utilisateur :

https://www.trackip.net/ip?json

ou seulement l'IP

https://www.trackip.net/ip

para pfsense (Vérifiez les services IP) :

http://trackip.net/pfsense

1 votes

Sympathique. Supporte aussi l'IPv6.

0 votes

Prend également en charge le protocole https. Upvoted.

3voto

sscarduzio Points 385

J'utilise celui-ci, facile à retenir et plus court que les autres :

$ curl ifconfig.me

PROTIP : Rappelez-vous que si vous utilisez curl dans des scripts shell, vous devez utiliser -s sinon, il imprime le tableau de progression du téléchargement.

$ echo `curl -s ifconfig.me`

3 votes

Je déménage de ifconfig.me à ipinfo.io en raison de la lenteur

0 votes

Pas de support IPv6...

0voto

user3463375 Points 1

Vous pouvez utiliser des API de services web qui font ce travail, par exemple :

see example of service: http://ip-api.com and usage: http://whatmyip.info

bonne chance !!!

0 votes

ip-api.com/json est le moyen le plus rapide et il a le meilleur temps de réponse. 150 demandes/minute

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X