GeoIP

Geolokalizacja adresów IP za pomocą modułu GeoIP i bazy danych adresów IP maxmind. Za pomocą tego modułu można w prosty sposób dodać funkcjonalność geolokalizacji do aplikacji webowych

Maxmind dostarcza bibiliotekę GeoIP do geolokalizacji adresów IP dla wielu języków, w tym dla Pythona. GeoIP-Python to nakładka na bibliotekę napisaną w C - GeoIP. By zainstalować moduł Pythona musimy najpierw zainstalować/skompilować bibliotekę dla C, a dopiero po tym można skompilować moduł dla Pythona (dla Linuksa sprawdź swoje repozytoria). By móc geolokalizować adresy IP potrzebować będziemy także 25MB bazę - GeoLiteCity.dat dostępną z poziomu naszego skryptu.

Wykorzystanie GeoIP jest proste, oto skrypt

# -*- coding: utf-8 -*-
import GeoIP

# geolokalizacja adresu IP
gi = GeoIP.open('GeoLiteCity.dat', GeoIP.GEOIP_STANDARD)
geo = gi.record_by_addr('ADRES IP')
print geo
#miasto generalnie wymagać może zdekodowania:
#city = unicode(geo['city'], 'iso-8859-1')
A efekt np. taki:
{'city': 'Warsaw', 'region_name': 'Warszawa', 'region': '67', 'area_code': 0, 'time_zone': 'Europe/Warsaw', 'longitude': 21.0, 'metro_code': 0, 'country_code3': 'POL', 'latitude': 52.25, 'postal_code': None, 'dma_code': 0, 'country_code': 'PL', 'country_name': 'Poland'}
Gdzie numerację regionów znajdziemy na stronie maxmind, dla Polski:
PL,23,"Biala Podlaska"
PL,24,"Bialystok"
PL,25,"Bielsko"
PL,26,"Bydgoszcz"
PL,27,"Chelm"
PL,28,"Ciechanow"
PL,29,"Czestochowa"
PL,30,"Elblag"
PL,31,"Gdansk"
PL,32,"Gorzow"
PL,33,"Jelenia Gora"
PL,34,"Kalisz"
PL,35,"Katowice"
PL,36,"Kielce"
PL,37,"Konin"
PL,38,"Koszalin"
PL,39,"Krakow"
PL,40,"Krosno"
PL,41,"Legnica"
PL,42,"Leszno"
PL,43,"Lodz"
PL,44,"Lomza"
PL,45,"Lublin"
PL,46,"Nowy Sacz"
PL,47,"Olsztyn"
PL,48,"Opole"
PL,49,"Ostroleka"
PL,50,"Pila"
PL,51,"Piotrkow"
PL,52,"Plock"
PL,53,"Poznan"
PL,54,"Przemysl"
PL,55,"Radom"
PL,56,"Rzeszow"
PL,57,"Siedlce"
PL,58,"Sieradz"
PL,59,"Skierniewice"
PL,60,"Slupsk"
PL,61,"Suwalki"
PL,62,"Szczecin"
PL,63,"Tarnobrzeg"
PL,64,"Tarnow"
PL,65,"Torun"
PL,66,"Walbrzych"
PL,67,"Warszawa"
PL,68,"Wloclawek"
PL,69,"Wroclaw"
PL,70,"Zamosc"
PL,71,"Zielona Gora"
PL,72,"Dolnoslaskie"
PL,73,"Kujawsko-Pomorskie"
PL,74,"Lodzkie"
PL,75,"Lubelskie"
PL,76,"Lubuskie"
PL,77,"Malopolskie"
PL,78,"Mazowieckie"
PL,79,"Opolskie"
PL,80,"Podkarpackie"
PL,81,"Podlaskie"
PL,82,"Pomorskie"
PL,83,"Slaskie"
PL,84,"Swietokrzyskie"
PL,85,"Warminsko-Mazurskie"
PL,86,"Wielkopolskie"
PL,87,"Zachodniopomorskie"

blog comments powered by Disqus

Kategorie

Strony