Obteniendo mi IP pública a través de API [cerrado]

76

¿Existe una API pública de alguna gran empresa para obtener mi IP pública desde un programa?

He encontrado http://ip-address.domaintools.com/myip.xml, que es exactamente lo que quiero, pero desafortunadamente bloquea Python, urllibasí como muchas otras bibliotecas http, a menos que falsifiques al agente de usuario (cualquier cosa que haga que no se pueda llamar una API).

El problema es que necesito estos datos para alguna biblioteca de código abierto potencialmente, así que tenemos que seguir las reglas. También sé que puedo hacer algo como print $_SERVER[REMOTE_ADDR]eso, pero no quiero enviar tráfico del servidor a todos los que usan mi biblioteca.

Entonces, ¿hay algo como la URL anterior, pero una API real, que permite robots?

Slava V
fuente
1
Duck Duck Go tiene un método público para determinar su dirección IP. Lo he detallado más aquí, ya que esta pregunta está cerrada y no puedo agregar una respuesta: stackoverflow.com/a/33743758/901641
ArtOfWarfare
2
ipify.org es un servicio alternativo.
Horcrux7
Sugiero probar Ipregistry: api.ipregistry.co/?key=tryout (descargo de responsabilidad: ejecuto el servicio).
Laurent

Respuestas:

95

Si bien no son de grandes empresas, todos estos deberían funcionar:

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

Fuente

Jamie Wong
fuente
1
¡Eso es genial! Muchas gracias, esp. para dyndns one, eso servirá!
Slava V
4
icanhazip.com devuelve el resultado más limpio en mi humilde opinión
mnagel
4
También ipinfo.io/ip
Ben Dowling
@mnagel También parece ser el único que admite HTTPS. Qué irónico ...
Navin
4
Puede consultar ipify.org , que tiene una API clara y admite HTTPS.
Yoan Tournade
40

Puede obtener su IP y un montón de otra información de mi servicio 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 solo quieres la IP:

$ curl ipinfo.io/ip
67.188.232.131

Eso también funciona para otros campos, por ejemplo:

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

Más detalles disponibles en http://ipinfo.io/developers

Ben Dowling
fuente
2
No es compatible con HTTPS
Navin
Todos los planes pagos tienen soporte HTTPS. Ver ipinfo.io/pricing
Ben Dowling
Sin soporte para IPv6 ...
rustyx
Es compatible con IPv6 a través de v6.ipinfo.io
Ben Dowling
Parece que https ahora es compatible, no se requiere un plan pago.
Raman
3

Yo uso este, fácil de recordar y más corto que otros:

$ curl ifconfig.me

PROTIP: Recuerde que si usa curl en scripts de shell, debe usar la -sopción, de lo contrario imprime la tabla de progreso de descarga.

$ echo `curl -s ifconfig.me`

sscarduzio
fuente
3
Me estoy moviendo de ifconfig.me a ipinfo.io debido a la lentitud
rodvlopes
Sin soporte para IPv6 ...
rustyx
0

Sí, puedes probar con whoisthisip.com

http://whoisthisip.com/HRAS/ Regístrese en whoisthisip.com para obtener la información de la dirección IP de un sitio web, como la ubicación de la ciudad, la ubicación del país y el nombre de dominio.

Una vez que haya iniciado sesión, se le dará un código de referencia y una URL para ver y obtener la información de la dirección IP del sitio web que registró.

Adam Biju
fuente
0

puede usar API de servicios web que hacen este trabajo como:

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

¡¡¡buena suerte!!!

usuario3463375
fuente
ip-api.com/json es la forma más rápida y tiene el mejor tiempo de respuesta. 150 solicitudes / minuto
ivahidmontazer
-1

Si no puede instalar curl en su sistema, la variante wget sería:

wget -qO- curlmyip.com
mimoralea
fuente