Lokalizacja hostów do krajów i miast
Napisał: Patryk Krawaczyński
04/06/2009 w Pen Test 1 komentarz. (artykuł nr 61, ilość słów: 311)
F
irma MaxMind zajmująca się geolokalizacją hostów w Internecie, a także wykrywaniem elektronicznych wyłudzeń finansowych za pomocą kart kredytowych udostępniła za darmo lekką (nie zawierającą tylu rodzai i ilości wpisów, co wersja komercyjna) wersję bazy danych umożliwiających lokalizację hostów, dodatkowo oferując API i bibliotekę (na licencji GPL) do obsługi wspomnianej bazy.
Co taki dar oznacza dla przeciętnego użytkownika systemu Linux? M.in. umożliwia sprawdzanie lokalizacji wybranego hosta / numeru IP z dokładnością do danego kraju lub miasta w tym kraju. W celu takiej możliwości najpierw należy wyposażyć swój system w odpowiednią bibliotekę (napisaną w C) i API (ang. Application Programming Interface) firmy MaxMind – w tym przypadku – interfejs programu użytkownika. MaxMind oferuje nam API w postaci: modułów – Perl, Ruby, PHP, Apache; klas Java, Python, C#; a także nawet Pascala czy Javascript! Poniższy przykład zostanie oparty o wykorzystanie biblioteki GeoIP napisanej w C oraz małej aplikacji – geoiplookup, która została dostarczona wraz z nią (dokładne opisy zastosowania wybranych API znajdują się na stronie firmy). Proces instalacji przebiega następująco:
Instalacja biblioteki GeoIP oraz programu pod konsolę:
wget http://www.maxmind.com/download/geoip/api/c/GeoIP.tar.gz tar -xzvf GeoIP.tar.gz cd GeoIP ./configure --prefix=/usr make make check make install
Instalacja aktualnych baz danych:
cd /usr/share/GeoIP rm GeoIP.dat wget http://www.maxmind.com/download/geoip/database/GeoIP.dat.gz wget http://www.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz gunzip GeoIP.dat.gz GeoLiteCity.dat.gz
Oficjalna próba identyfikacji kraju wybranego hosta (pod postacią domeny lub IP):
$ geoiplookup nfsec.pl GeoIP Country Edition: PL, Poland
Oficjalna próba identyfikacji miasta wybranego hosta:
$ geoiplookup -f /usr/share/GeoIP/GeoLiteCity nfsec.pl GeoIP City Edition, Rev 1: PL, 87, Szczecin, (null), 53.416698, 14.58330, 0, 0
Gdzie liczby 53… i 14… oznaczają kolejno szerokość i długość geograficzną, które można wykorzystać przy przenoszeniu wyników na interfejs dowolnej mapy graficznej np. maps.google.pl. Oczywiście komercyjna wersja bazy oferuje więcej możliwości (identyfikację ISP, rodzaj łącza itp.), ale jej darmowy odpowiednik wraz z połączeniem z innymi narzędziami “namierzającymi” (nslookup, whois, traceroute, itd. czy statystykami np. awstats) dostępnymi w systemie Linux powinien stanowić wystarczające uzupełnienie lokalizujące.
Więcej informacji: www.maxmind.com, www.yougetsignal.com
Brak starszych postów Następny wpis
Poniżej znajduje się prosty skrypt do lokalizacji w JavaScript do dodania na dowolną stronę WWW, który korzysta z API firmy MaxMind: