PHP определение IP или откуда родом ваши пользователи

PHP определение IP

От автора: в интернете ваше имя и фамилия ничего не значат. Здесь для определения юзера используется IP. Зная его, можно установить город и страну проживания человека, используемый браузер…. Не верите? Все это вы поймете, когда изучите в PHP определение IP.

IP и не только

Для получения сетевой информации пользователя в PHP существует глобальный массив $_SERVER. Давайте выведем его содержимое на экран:

<?php
 print_r ($_SERVER);
?>

PHP определение IP

Понятно, что искать конкретное значение в этом «великолепии» практически нереально, поэтому определение IP адреса PHP мы зададим более точно:

<?php
 $tvoi_ip=$_SERVER['REMOTE_ADDR'];
 echo $tvoi_ip;
?>

PHP определение IP

Фреймворк YII2. Быстрая разработка с современным PHP фреймворком

Узнай тонкости современной веб-разработки с помощью фреймворка YII2

Узнать подробнее

Теперь мы знаем, что IP записывается в REMOTE_ADDR. Откуда она берется? Все эти данные клиент пересылает во время установки соединения. Эта переменная задается в настройках сервера на стороне клиента.

Некоторые для определения города по IP в PHP используют значения HTTP-заголовков, но это в корне неверно. Любой пользователь может прописать значения заголовков для своего хоста. Также следует понимать, какой IP вам нужен. Например, значение HTTP_X_FORWARDED_FOR содержит адрес удаленного клиента, его прокси или может быть вообще пустым. Короче, тут разбираться не на один вечер хватит :) .

Что касается браузера пользователя, то его можно попробовать определить с помощью функции get_browser (). Но для ее применения на стороне клиента в файле php.ini должен быть прописан путь к browscap.ini. Иначе получите подобное предупреждение:

PHP определение IP

Узнаем страну юзера и не только

Теперь с помощью PHP определим страну по IP. Но для начала проведем обзор всех решений в этой сфере. Большая часть подобных скриптов использует упомянутый нами элемент глобального массива $_SERVER REMOTE_ADDR. Теперь начинается самое главное.

Можно использовать уже готовые библиотеки, в которых полученный IP просто сортируется в зависимости от своего значения. Надеюсь, для вас не является секретом, что это значение присваивается клиенту (хосту) в зависимости от его геолокации: страны, города и региона проживания пользователя. На анализе этих диапазонов и построен весь функционал.

Также применяются различные сторонние сервисы наподобие ip-whois.net. С помощью скрипта вы передаете значение IP, а тот возвращает вам данные о нахождении хоста.

Кроме этого часть специализированных библиотек поставляется со своей базой данной, в таблицах которых содержатся все рассортированные (по географии) диапазоны IP. Я не буду их перечислять. Таких в Сети сейчас хватает.

Каким вариантом воспользоваться, решать вам. Применение стороннего сервиса позволит снизить затраты ресурсов и нагрузку на ваш сайт. При этом использование библиотеки с базой избавит от проблем с подключением.

В следующем скрипте для определения региона по IP PHP используется библиотека TabGeo. Сейчас ее официальный ресурс не работает. Я скачал библиотеку с GitHub, но использовал только файл country.php. В нем по полученному IP определяется страна проживания пользователя. И затем (по ISO-коду) можно реализовать редиректы на различные страницы сайта:

<?php
 include("country.php");
 $ip = $_SERVER['REMOTE_ADDR'];
 $geopoloj = strana($ip);
 switch ($geopoloj) {
  case "BE":
 $goLoc = "https://webformyself.com/category/database/mysql/";
 break;
  case "UA":
 $goLoc ="https://webformyself.com/category/tutorials/news/";
 break;
  case "FR":
 $goLoc = "https://webformyself.com/category/webprogramming/phpvideo/";
 break;
  default:
 $goLoc = "http://webformyself.com";
 }
 header("location: $goLoc");
?>

Файл библиотеки можно скачать по этой ссылке. Примерно таким же образом создается PHP скрипт для определения оператора по IP. На сегодня все! Надеюсь, теперь вы сможете узнать о своих пользователях намного больше.

Фреймворк YII2. Быстрая разработка с современным PHP фреймворком

Узнай тонкости современной веб-разработки с помощью фреймворка YII2

Узнать подробнее
Самые свежие новости IT и веб-разработки на нашем Telegram-канале

Курс по программированию на языке PHP

Изучите PHP с нуля до результата!

Смотреть курс

Метки:

Похожие статьи:

Комментарии Вконтакте:

Комментарии Facebook:

Комментарии (1)

  1. Руслан

    Здравствуйте! только начал изучать php, вот решил немного попрактиковаться, идея в том чтобы получить данные и разбить по отдельности ($ip, $страну, $город и $провайдер) и вывести их для пользователя посетивший наш сайт.. Подскажите пожалуйста где можно почитать статьи про это?

    Спасибо!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree