Saltar al contenido

Obtenga la ubicación geográfica de una dirección IP

Es hora de un script nuevamente, este geolocalizará una dirección IP según la entrada del usuario. Para este script, usaremos varios módulos de Python para lograr esto. Primero hacemos una verificación para ver que el usuario ingresa suficientes argumentos, y si no, la variable de ‘uso’ se imprimirá sobre cómo usarla.

Estamos usando el geody Servicio web para encontrar geolocalizar la IP.

import re
import sys
import urllib2
import BeautifulSoup

usage = "Run the script: ./geolocate.py IPAddress"

if len(sys.argv)!=2:
    print(usage)
    sys.exit(0)

if len(sys.argv) > 1:
    ipaddr = sys.argv[1]

geody = "http://www.geody.com/geoip.php?ip=" + ipaddr
html_page = urllib2.urlopen(geody).read()
soup = BeautifulSoup.BeautifulSoup(html_page)

# Filter paragraph containing geolocation info.
paragraph = soup('p')[3]

# Remove html tags using regex.
geo_txt = re.sub(r'<.*?>', '', str(paragraph))
print geo_txt[32:].strip()

Este script se copia de este correo en snipplr.com

Entrenamiento de Python recomendado

Para el entrenamiento de Python, nuestra principal recomendación es DataCamp.