Geolokalizacja w PHP

Użytkownicy odwiedzający naszą stronę internetową zazwyczaj są zlokalizowani w różnych miejscach. Aby móc sprawdzić w jakim miejscu znajduje się użytkownik na naszej stronie, możemy skorzystać z geolokalizacji.

W słownikowym znaczeniu geolokalizacja, to określenie fizycznego położenia obiektu. Pojęcie to zazwyczaj kojarzy się z GPS. W naszym przypadku, będziemy lokalizować użytkowników na podstawie ich adresu IP.

Biblioteka GeoIP

Język PHP oferuje nam wbudowaną bibliotekę Geo IP, która pozwala dzięki swoim funkcjom w łatwy sposób określić skąd pochodzi nasz użytkownik. Biblioteka nie jest zainstalowana domyślnie wraz z instalacją PHP – należy ją dodać samemu. GeoIP posiada wbudowaną już podstawową bazę adresów.

Ważne, aby pamiętać, że lokalizacja na podstawie adresu nie będzie w 100% precyzyjna ponieważ nie da się, bazując na samym adresie IP, określić dokładnej lokalizacji jak ma to miejsce np. w lokalizacji z użyciem przeglądarki i JavaScript.

Biblioteka oferuje nam poza sama lokalizacją szereg dodatkowych informacji:

  • Nazwa kontynentu
  • Nazwa kraju
  • Region
  • Nazwa miasta
  • Kod pocztowy
  • Współrzędne geograficzne
  • Rodzaj połączenia internetowego
  • Nazwa ISP, czyli firmy jaka dany adres dostarczyła

Należy przy tym pamiętać, że nie wszystkie dane są zwracane dla każdego IP. Jako pewnik możemy uznać, iż zwrócony zostanie kraj oraz miasto.

Wracając do lokalizacji z użyciem JavaScript, warto zaznaczyć jedną zasadniczą różnicę na korzyść lokalizacji po stronie back-endu. Nie wymaga ona zgody użytkownika w przeglądarce. Dzięki temu odebrane i przetworzone dane możemy zapisać np. do ciasteczka, aby móc je wykorzystać zarówno po stronie back-endu jak i front-endu.

Jak działa geolokalizacja i skąd pobiera dane?

Podstawowe dane takie jak kraj i miasto są zbierane z użyciem bazy Whois.
Każdy adres IP ma przypisanego “właściciela”, czyli firmę, która udostępnia go użytkownikowi. Whois pozwala nam sprawdzić do jakiej firmy należy dany adres wraz ze szczegółowymi danymi adresowymi. Dostępne są zarówno serwisy online jak i konsolowe narzędzie whois, w którym możemy te dane sprawdzić.

Dodatkowo dane są wymieniane między firmami, zbierane podczas odwiedzania przez nas różnych stron i taka korelacja danych pozwala na bardziej precyzyjne wskazanie skąd pochodzi dany adres IP.

Do czego wykorzystać geolokalizację?

Pierwszą rzeczą, która przychodzi do głowy są statystyki. Jeśli posiadamy sklep internetowy, w którym użytkownik może się logować, możemy w bazie danych dodać jego adres IP i go zlokalizować. Następnie mamy możliwość przeanalizowania z jakich krajów mamy najwięcej odwiedzających lub który kraj robi u nas największe zakupy. Dzięki temu, możemy sprawić, aby nasza strona była bardziej interaktywna pod kątem lokalizacji. Oznacza to, że w przypadku sklepu internetowego może on pokazać automatyczne różne waluty dla osób odwiedzających sklep z różnych krajów.

Geolokalizacja świetnie sprawdza się w przypadku, gdy strona posiada kilka wersji z subdomenach, które są dedykowane na dany kraj. Posłużmy się przykładem sklepu, który ma osobną stronę dla klientów w USA oraz osobną dla tych z Europy. W przypadku, gdy użytkownik z Europy wejdzie na amerykańską domenę, możemy automatycznie przekierować go na właściwą wersję. Możemy także pokazać na mapie najbliższy oddział naszej firmy, bazując na lokalizacji użytkownika.

Kolejnym praktycznym zastosowaniem jest wyświetlenie strony w odpowiednim języku, zależnym od lokalizacji. Przecież nie każdy obcokrajowiec odwiedzający polską stronę musi znać nasz język i wiedzieć gdzie go zmienić – zróbmy to za niego.

Ostatnim już przykładem jest ten najmniej przyjemny, czyli blokady.
Zdarzają się sytuacje, gdy nie chcemy, aby osoba z danego kraju miała dostęp do naszej strony. W takiej sytuacji możemy ją całkowicie zablokować. W przypadku płatności, użytkownik podając swój adres może zostać zweryfikowany czy jego geolokalizacja odpowiada adresowi, który wpisał. Gdy użytkownik z Chin poda adres wysyłkowy do Polski, może to np. poskutkować zablokowaniem transakcji płatniczej

Dodatkowe biblioteki

Biblioteka Geo IP w PHP nie jest bardzo dokładna, ponieważ nie zawiera precyzyjnych danych. Z pomocą przychodzą nam serwisy zewnętrzne, które zajmują się stricte geolokalizacją i udostępniają swoje bazy.

Przykładem takiego serwisu jest chyba najpopularniejszy na chwilę obecną MaxMind. Oferuje zarówno bazy darmowe MaxMind OpenSource jak i profesjonalne, precyzyjne bazy, które są płatne takie jak MaxMind Databases. Dostępne jest także API, które pozwala rozliczać się za każde zapytanie.

Udostępniona jest również biblioteka autorstwa MaxMind, która pozwala nam w łatwy sposób korzystać z zasobów i możliwości geolokalizacji.

Podsumowanie

Pamiętaj, w internecie nie jesteśmy anonimowi. Znajomość geolokalizacji uświadamia jakie dane są zbierane na nasz temat i co można zobaczyć “od kuchni”. W tym wpisie podany został tylko przykład prostej Geolokalizacji IP, która w powiązaniu z wieloma innymi danymi i czynnikami daje potężne narzędzie.

 

 

 

Site Footer

Sliding Sidebar