Skrypt PHP do określania operatora według adresu IP. Sypex Geo - szybka identyfikacja miasta po adresie IP. Dowiedz się o kraju użytkownika i nie tylko

Wyświetl miasto odwiedzającego, aby poprawić współczynniki konwersji sklepu. Gotowy kod do wstawienia w dowolnym miejscu serwisu wskazujący miasto, region i kraj. Wypróbowałem wiele skryptów, ale ten okazał się najprostszy i najskuteczniejszy! Użyłem go podczas tworzenia strony internetowej www.mzm-market.ru, gdzie skrypt wyświetla „dostawa do______”

Wklej następujący kod do pliku Index.tpl (lub na stronie dostawy) w dowolnym miejscu:



okno.onload =funkcja())(
jQuery("#user-city").text(ymaps.geolocation.city);
jQuery("#user-region").text(ymaps.geolocation.region);
jQuery("#kraj-użytkownika").text(ymaps.geolokalizacja.kraj);)


Dane wyjściowe są tworzone przy użyciu:

// kraj, miasto, region.
geolokalizacja.kraj, geolokalizacja.miasto, geolokalizacja.region

Chciałbym dodać trochę do tego wpisu (edytowanego 18 lutego 2017 r.).

Podczas korzystania z powyższego skryptu w wielu miastach i przeglądarkach po prostu nic się nie wyświetlało, a po długich poszukiwaniach znalazłem prawdopodobnie najskuteczniejszy skrypt do określania kraju, regionu, miasta poprzez API Yandex. Przetestowałem go na moich klientach, którzy są zlokalizowani niemal w całej Rosji i poza nią, i ten skrypt okazał się doskonały! Oto zrzut ekranu mojego klienta:

Rozumiesz, że wszystko zostało jasno określone! Cóż, nie będę cię męczyć pismami i podam przykład!

js Określenie kraju, regionu, miasta poprzez Yandex API

Po prostu wklej ten kod pomiędzy tagami




$(dokument).gotowy(funkcja())(
ymaps.ready(funkcja())(
var geolokalizacja = ymaps.geolokalizacja;
$("#cou").html("Twój kraj: "+geolokalizacja.kraj);
$("#tow").html("Twoje miasto: "+geolokalizacja.city);
$("#reg").html("Twój region: "+geolokalizacja.region);
});
});

I ten kod we właściwym miejscu na Twojej stronie:

Twój kraj: ... zdeterminowany...
Twoje miasto: ... zdeterminowane...
Twój region: ... zdeterminowany...

Demonstracja

Twój kraj: ... zdeterminowany...

Twoje miasto: ... zdeterminowane...

Twój region: ... zdeterminowany...

Skrypt działa bez problemów, ale możliwe jest, że w przypadku mieszkańców małych wiosek miasto najprawdopodobniej zostanie określone niepoprawnie i zostanie określone miasto Twojego dostawcy Internetu.

Od autora: w Internecie Twoje imię i nazwisko nic nie znaczą. W tym przypadku adres IP służy do określenia użytkownika. Znając to, możesz określić miasto i kraj zamieszkania danej osoby, używaną przeglądarkę…. Nie wierzysz mi? Zrozumiesz to wszystko, studiując definicję IP w PHP.

IP i nie tylko

Aby uzyskać informacje o sieci użytkownika w PHP, istnieje tablica globalna $_SERVER. Wyświetlmy jego zawartość na ekranie:

Teraz wiemy, że adres IP jest zapisany w REMOTE_ADDR. Skąd to pochodzi? Klient wysyła wszystkie te dane podczas nawiązywania połączenia. Zmienną tę ustawia się w ustawieniach serwera po stronie klienta.

Niektórzy używają wartości nagłówka HTTP do określenia miasta na podstawie adresu IP w PHP, ale jest to zasadniczo błędne. Każdy użytkownik może określić wartości nagłówka dla swojego hosta. Powinieneś także zrozumieć, jakiego adresu IP potrzebujesz. Na przykład wartość HTTP_X_FORWARDED_FOR zawiera adres zdalnego klienta, jego serwera proxy lub może być całkowicie pusta. Krótko mówiąc, wystarczy, aby uporządkować to na więcej niż jeden wieczór.

Jeśli chodzi o przeglądarkę użytkownika, możesz spróbować ją określić za pomocą funkcji get_browser(). Aby jednak móc go używać po stronie klienta, w pliku php.ini należy określić ścieżkę do pliku browscap.ini. W przeciwnym razie otrzymasz takie ostrzeżenie:

Dowiedz się o kraju użytkownika i nie tylko

Teraz, używając PHP, określimy kraj według adresu IP. Ale najpierw przejrzyjmy wszystkie rozwiązania w tym obszarze. Większość tych skryptów używa globalnego elementu tablicy $_SERVER REMOTE_ADDR, o którym wspominaliśmy. Teraz następuje najważniejsza część.

Możesz użyć już, w którym otrzymany adres IP jest po prostu sortowany w zależności od jego wartości. Mam nadzieję, że nie jest dla Was tajemnicą, że wartość ta jest przypisana klientowi (hostowi) w zależności od jego geolokalizacji: kraju, miasta i regionu zamieszkania użytkownika. Cała funkcjonalność opiera się na analizie tych zakresów.

Wykorzystywane są również różne usługi stron trzecich, takie jak ip-whois.net. Za pomocą skryptu przekazujesz wartość IP, a on zwraca Ci dane o lokalizacji hosta.

Ponadto niektóre biblioteki specjalistyczne posiadają własną bazę danych, w której tabelach znajdują się wszystkie zakresy adresów IP posortowane (według położenia geograficznego). Nie będę ich wymieniać. W Internecie jest ich teraz mnóstwo.

Ty decydujesz. Korzystanie z usług stron trzecich zmniejszy koszty zasobów i obciążenie Twojej witryny. Jednocześnie wykorzystanie biblioteki z bazą danych wyeliminuje problemy z połączeniem.

Poniższy skrypt wykorzystuje bibliotekę TabGeo do określenia regionu za pomocą protokołu IP PHP. Teraz jego oficjalny zasób nie działa. Pobrałem bibliotekę z GitHub, ale użyłem tylko pliku country.php. Na podstawie otrzymanego adresu IP ustala kraj zamieszkania użytkownika. Następnie (za pomocą kodu ISO) możesz zaimplementować przekierowania na różne strony serwisu: