GeoIP
25 July 2009
Comments
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')
{'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"
RkBlog
Comment article