Localizzatore Geografico Indirizzi IP

Ho scritto questo script in Python che serve per trovare la posizione geografica di un indirizzo IP assegnato , la precisione alcune volte è molto alta , altre volte sbaglia a causa dell’IP dinamico assegnato dal suo Provider.

Scaricate il database delle città associate:

[mini_download]http://www.sawmill.net/geoip/GeoIPCity.dat[/mini_download]

Scaricate la libreria per Python:

[mini_download]http://geolite.maxmind.com/download/geoip/api/python/GeoIP-Python-1.2.4.tar.gz[/mini_download]

Oppure installatela dal terminale se siete su linux:

[attenzione]root@ganja:/home/asterix# apt-get install python-geoip python-geoip-dbg[/attenzione]

Lo script funziona in questo modo:

[attenzione]

asterix@ganja:~/Scrivania/geoip$ python iplocator.py 78.15.142.101

* Geo IP locator
* Created by ^4st3r1X^
* 02/11/09

Sigla Stato: ITA
Nome Stato: Italy
Citta’: Cagliari
Regione: Sardegna
Codice Postale: None
Latitudine: 39.2167015076
Longitudine: 9.11670017242
Fuso orario: Europe/Rome

———-
Se desideri vedere la posizione geografica sul satellite digita ‘s’ altrimenti premi invio:

[/attenzione]

Il sorgente dello script è questo:

#!/usr/bin/python
import GeoIP
import sys
import os
print “nn        * Geo IP locator”
print ”        * Created by ^4st3r1X^”
print ”        * 02/11/09nn”

try:
ip = sys.argv[1] except:
print ” * Utilizzo:n * /home/percorso/file/location.py [IP]”
print ” * Esempio: n * /home/percorso/file/location.py 82.2.18.1nn”
exit()

database = “~/GeoIP/GeoIPCity.dat” #modificare
try:
control = GeoIP.open(database, GeoIP.GEOIP_MEMORY_CACHE)
info = control.record_by_addr(ip)
country_code3 = info[‘country_code3’] country_name = info[‘country_name’] city = info[‘city’] region_name = info[‘region_name’] postal_code = info[‘postal_code’] latitude = info[‘latitude’] longitude = info[‘longitude’] time_zone = info[‘time_zone’] except:
print ” * Utilizzo:n * /home/percorso/file/location.py [IP]”
print ” * Esempio: n * /home/percorso/file/location.py 82.2.18.1nn”
exit()
if info != None:
print “Sigla Stato: %s” % (country_code3)
print “Nome Stato: %s” % (country_name)
print “Citta’: %s” % (city)
print “Regione: %s” % (region_name)
print “Codice Postale: %s” % (postal_code)
print “Latitudine: %s” % (latitude)
print “Longitudine: %s” % (longitude)
print “Fuso orario: %snnn” % (time_zone)
print “———-”
a = raw_input(“Se desideri vedere la posizione geografica sul satellite digita ‘s’ altrimenti premi invio: “)
if a == ‘s’:
link = ‘”http://maps.google.it/maps?q=%s,%s(Posizione Geografica %s)”‘ % (latitude, longitude, ip)
os.popen(“firefox %s &” % (link))
else:
exit()

Potete prendere lo script + il database (tutto pronto) da questo link:

[mini_download]http://www.megaupload.com/?d=D513IYQ0[/mini_download]

Screenshots:

 

[Fonte: 4st3r1x ]


Brando Mattioli

Blogger - Amante della Rete e di tutto ciò che la compone. Appassionato ed emotivo e certe volte alternativo e riflessivo. Sicuramente deciso e insicuro e allo stesso tempo arrogante e spietato.