(http://localhost/sandbox/geoip/images/geoip-logo.png)
Danas sam pokušao za potrebe jednog brzog projekta da na netu nađem bazu koja sadrži podatke o zemljama sveta i njima dodeljene opsege IP adresa. Skoro da sam se razočarao kada sam video da na svakom sajtu postoji neko ograničenje u vidu dozvole da se maksimalno 20 puta na dan vrše upiti i slično. Takođe sam se razočarao što sistemi jednostavno ne nude mogućnost da se u odgovoru servisa dobije isključivo informacija o zemlji odakle potiče IP adresa i to bez ikakvih formi i HTML šminke. Zato sam odlučio da napravim svoj GeoIP sistem :D
Sistemu se može pristupiti preko adrese http://csl.tfc.kg.ac.rs/~brezanac/geoip/
Način korišćenja je jednostavan i podrazumeva da se u tekstualno polje samo ukuca IP adresa koja je od interesa.
Ono što je interesantno je da se zahtev može vršiti i direktno putem URLa i to navođenjem parametra nogui čime se u kompletnom odgovoru dobija samo kod zemlje čiji je IP. Primera radi http://csl.tfc.kg.ac.rs/~brezanac/geoip/geoip.php?ip=213.198.249.216&nogui=true.
Naravno verovatno bi od veće koristi bilo da je odgovor u XML formatu i da pored koda postoji i info o nazivu zemlje itd. To dolazi na red kada završim sa ostalim obavezama.
Što se tiče tačnosti sistema ona je velika jer su podaci koji se proveravaju deo GeoLite baze podataka o čemu se više informacija može naći na sledećem linku http://maxmind.com/. Baza koja se ovde koristi je potpuno besplatna.
Kompletan source i baza nalaze se prikačeni uz ovu poruku.
Postoji addon za firefox koji ovo elegantno i jednostavno radi:
https://addons.mozilla.org/en-US/firefox/addon/5791 (https://addons.mozilla.org/en-US/firefox/addon/5791)
Znam za ovaj addon odavno, čak štaviše koristi se ista baza podataka kao i u ovom mojoj aplikaciji s tim što mi je nešto čudno. GeoLite baza ne sadrži bilo kakve dodatne informacije osim opsega IP adresa i naziva zemlje a na http://geotool.flagfox.net/ recimo može da se vidi i naziv grada pa čak i u Flashu zumirana lokacija porekla IP adrese. S obzirom da u zaglavlju piše da se koristi GeoLite baza a da svi ovi dodatni podaci se koriste u aplikaciji jasno je da ovde ne koriste free bazu (GeoLite) nego komercijalnu pa je verovatno u pitanju neki pirat :dzavo:
Elem poenta ove moje aplikacije je više u tome da može da se koristi kao API za potrebe drugih aplikacija. Drugim rečima da na zahtev recimo iz PHPa da može da se dobije direktno kod i to bez raznih HTML elemenata u rezultatu kao recimo ovako http://csl.tfc.kg.ac.rs/~brezanac/geoip/?ip=91.187.132.16&nogui=true. To nećeš nigde naći u ovom obliku bar koliko ja znam. Ovde samo treba dodati da odzvivi budu u XML obliku tj. da može više informacija da se prosledi proizvoljnoj aplikaciji pisanoj u bilo kom jeziku tako da odzivi recimo izgledaju ovako
<?xml version="1.0" encoding="utf-8"?>
<result>
<ip>91.187.132.16</ip>
<countryCode>RS</countryCode>
<countryName>Serbia</countryName>
</result>