Geolocalización de direcciones IP en Python

Hoy vamos a ver como podemos localizar las direcciones ip utilizando una libreria de Python diseñada exclusivamente para esto, muchas personas podrían dudar de la utilidad de esto, sin embargo a la hora de realizar un pentesting es de gran utilidad conocer la ubicación de los servidores para asegurarnos de que estamos atacando las máquinas correctas y no hemos cometido ningún error.

Bien frente a esta breve introducción vamos a pasar al tema en sí. La librería que vamos a usar se llama Pygeoip y esta disponible para su descarga e instalación en la siguiente URL, para su instalación simplemente tenemos que ejecutar el comando

python setup.py install

teniendo en cuenta que tenemos que ubicarnos en la carpeta que contiene el archivo “setup.py” de la librería.

Como ejemplo de funcionamiento pasaré a poner el código y posteriormente explicarlo

#!/usr/bin/python

#coded by @cyberh99

import pygeoip
import pprint
import sys

addr = sys.argv[1]

gi = pygeoip.GeoIP(‘GeoLiteCity.dat’)

print “##Country##”
print gi.country_name_by_addr(str(addr))
print “##Time Zone##”
print gi.time_zone_by_addr(str(addr))
print “~~~~”
pprint.pprint(gi.record_by_addr(str(addr)))
print “~~~~~”

 

Bien, para el uso de la librería en primer lugar tenemos que descargarnos las bases de datos que nos ayudarán a geolocalizar las direcciones estas están publicas y pueden ser descargadas de forma gratuita desde la siguiente dirección.

Una vez que tenemos todo lo necesario y el script creado pasaremos a crearlo.

En primer lugar necesitamos crear el objeto que nos ayudará en todo el proceso de escaneo, dentro de este objeto será necesario especificar el archivo “.dat” que queremos utilizar, para ello instanciamos el objeto de la siguiente forma.

gi = pygeoip.GeoIP(“archivo.dat”)

Una vez que hemos creado el objeto simplemente pasaremos a llamar a los datos que necesitamos en este caso extraemos los siguiente datos

  • .contry_name_by_addr() –> Obtenemos el nombre del país mediante la dirección ip del equipo.
  • .time_zone_by_addr() –> Obtenemos la franja horaria mediante la dirección ip.
  • .record_by_addr() –> Extraemos toda la información, entre la cuál se incluye las coordenadas geográficas.

Durante todo este post hemos supuesto que las direcciones con las que estamos trabajando son direcciones IPV4, sin embargo, podemos trabajar de igual forma con direcciones IPV6, simplemente obteniendo la base de datos correspondiente a la localización de direcciones ipv6.

Con esto doy por finalizado el post y recordad que para cualquier duda podéis contactarme en mis redes sociales.

@cyberh99

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s