СВЕТ: СПАСИБО
01-12-2023
Читать статью
Калужский Александр: Задача про Цаплю: https://www.youtube.co..
24-11-2023
Сергей: спасибо большое
Сегодня научимся вычислять по ip с помощью php. Пусть у нас есть IP посетителя. Какие данные мы можем узнать на сторонних сервисах ?
Представляю Вашему вниманию сервис www.geoplugin.net. Напишем код на PHP:
$client = @$_SERVER[|'HTTP_CLIENT_IP']; $forward = @$_SERVER['HTTP_X_FORWARDED_FOR']; $remote = @$_SERVER['REMOTE_ADDR']; if(filter_var($client, FILTER_VALIDATE_IP)) $ip = $client; elseif(filter_var($forward, FILTER_VALIDATE_IP)) $ip = $forward; else $ip = $remote; $ip_data = @json_decode(file_get_contents("http://www.geoplugin.net/json.gp?ip=".$ip));
Распечатаем объект $ip_data:
echo "<pre>"; var_dump($ip_data); echo "</pre>";
Приведу некоторые параметры данного объекта:
object(stdClass)#1 (24) { ["geoplugin_city"]=> string(6) "Chern'" ["geoplugin_region"]=> string(17) "Tul'skaya Oblast'" ["geoplugin_regionCode"]=> string(3) "TUL" ["geoplugin_regionName"]=> string(17) "Tul'skaya Oblast'" string(6) "Russia" string(13) "Europe/Moscow" ["geoplugin_currencyCode"]=> string(3) "RUB" }
Видим, что мы легко можем определить регион и город. Но город может быть не точным, т.к. пишется город откуда провайдер выходит в интернет. Но даже информация о регионе является очень полезной информацией, чтобы представлять откуда, примерно, ваш посетитель.
Теперь можем использовать данную информацию
$region = ""; if($ip_data && $ip_data->geoplugin_countryName != null) { $region = $ip_data->geoplugin_region; }
Разберём некоторые моменты вышеприведённого кода. $_SERVER['REMOTE_ADDR'] - не всегда содержит точное значение. Если пользователь сидит через прокси, то в переменных $_SERVER['HTTP_CLIENT_IP'] и $_SERVER['HTTP_X_FORWARDED_FOR'], возможно, будет более точная информация. Стоит отметить, что если пользователь постарается, ему удастся скрыть реальный IP.
filter_var($client, FILTER_VALIDATE_IP) - фирменный метод проверить данные на корректность!
Теперь мой сайт будет в базу данных записывать не IP, а сразу регион, таким образом, будет наглядно откуда, примерно, данный пользователь.
На этом всё! Пока!