От автора: в интернете ваше имя и фамилия ничего не значат. Здесь для определения юзера используется IP. Зная его, можно установить город и страну проживания человека, используемый браузер…. Не верите? Все это вы поймете, когда изучите в PHP определение IP.
IP и не только
Для получения сетевой информации пользователя в PHP существует глобальный массив $_SERVER. Давайте выведем его содержимое на экран:
1 2 3 |
<?php print_r ($_SERVER); ?> |
Понятно, что искать конкретное значение в этом «великолепии» практически нереально, поэтому определение IP адреса PHP мы зададим более точно:
1 2 3 4 |
<?php $tvoi_ip=$_SERVER['REMOTE_ADDR']; echo $tvoi_ip; ?> |
Теперь мы знаем, что IP записывается в REMOTE_ADDR. Откуда она берется? Все эти данные клиент пересылает во время установки соединения. Эта переменная задается в настройках сервера на стороне клиента.
Некоторые для определения города по IP в PHP используют значения HTTP-заголовков, но это в корне неверно. Любой пользователь может прописать значения заголовков для своего хоста. Также следует понимать, какой IP вам нужен. Например, значение HTTP_X_FORWARDED_FOR содержит адрес удаленного клиента, его прокси или может быть вообще пустым. Короче, тут разбираться не на один вечер хватит :).
Что касается браузера пользователя, то его можно попробовать определить с помощью функции get_browser (). Но для ее применения на стороне клиента в файле php.ini должен быть прописан путь к browscap.ini. Иначе получите подобное предупреждение:
Узнаем страну юзера и не только
Теперь с помощью PHP определим страну по IP. Но для начала проведем обзор всех решений в этой сфере. Большая часть подобных скриптов использует упомянутый нами элемент глобального массива $_SERVER REMOTE_ADDR. Теперь начинается самое главное.
Можно использовать уже готовые библиотеки, в которых полученный IP просто сортируется в зависимости от своего значения. Надеюсь, для вас не является секретом, что это значение присваивается клиенту (хосту) в зависимости от его геолокации: страны, города и региона проживания пользователя. На анализе этих диапазонов и построен весь функционал.
Также применяются различные сторонние сервисы наподобие ip-whois.net. С помощью скрипта вы передаете значение IP, а тот возвращает вам данные о нахождении хоста.
Кроме этого часть специализированных библиотек поставляется со своей базой данной, в таблицах которых содержатся все рассортированные (по географии) диапазоны IP. Я не буду их перечислять. Таких в Сети сейчас хватает.
Каким вариантом воспользоваться, решать вам. Применение стороннего сервиса позволит снизить затраты ресурсов и нагрузку на ваш сайт. При этом использование библиотеки с базой избавит от проблем с подключением.
В следующем скрипте для определения региона по IP PHP используется библиотека TabGeo. Сейчас ее официальный ресурс не работает. Я скачал библиотеку с GitHub, но использовал только файл country.php. В нем по полученному IP определяется страна проживания пользователя. И затем (по ISO-коду) можно реализовать редиректы на различные страницы сайта:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?php include("country.php"); $ip = $_SERVER['REMOTE_ADDR']; $geopoloj = strana($ip); switch ($geopoloj) { case "BE": $goLoc = "//webformyself.com/category/database/mysql/"; break; case "UA": $goLoc ="//webformyself.com/category/tutorials/news/"; break; case "FR": $goLoc = "//webformyself.com/category/webprogramming/phpvideo/"; break; default: $goLoc = "//webformyself.com"; } header("location: $goLoc"); ?> |
Файл библиотеки можно скачать по этой ссылке. Примерно таким же образом создается PHP скрипт для определения оператора по IP. На сегодня все! Надеюсь, теперь вы сможете узнать о своих пользователях намного больше.
Комментарии (1)