Diferentes maneras de averiguar tu IP

Referencias:

ver varios ejemplos en esos sitios web, especialmente http://ifconfig.co y http://www.ipify.org

Lo interesante de IPIFY es que puede devolver los datos en varios formatos:

curl 'https://api.ipify.org?format=json'

aunque principalmente es text y json, y tiene bilbiotecas para un rango muy amplio de lenguajes.

BASH: devuelve la IP como un simple texto

ip=$(curl -s https://api.ipify.org)
curl ifconfig.co
curl ifconfig.co/json
curl ifconfig.me
curl ipinfo.io/ip
wget -qO- icanhazip.com

Usando un DNS:

dig +short myip.opendns.com @resolver1.opendns.com

PYTHON:

en forma interactiva

from requests import get
ip = get('https://api.ipify.org').text
print 'My public IP address is:', ip

un ejemplo de script muy básico

#!/usr/bin/python
# -*- coding: utf-8 -*-
from requests import get
# traemos los datos en formato json, pero como es un texto
# hay que evaluarlo para que se convierta en un diccionario
# de python
ip = eval(get('http://ifconfig.co/json').text)
# imprimimos la información
print "IP:    ", ip["ip"]
print "Nombre:", ip["hostname"]
print "Ciudad:", ip["city"]
print "País:  ", ip["country"]

una versión más segura:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import ast
from requests import get
# traemos los datos en formato json, pero como es un texto
# hay que evaluarlo para que se convierta en un diccionario
# de python
ip = ast.literal_eval(get('http://ifconfig.co/json').text)
# imprimimos la información
print "IP:    ", ip["ip"]
print "Nombre:", ip["hostname"]
print "Ciudad:", ip["city"]
print "País:  ", ip["country"]