Толик Панков
hex_laden
............ .................. ................

November 2020
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

Толик Панков [userpic]
Определение IP и местоположения посетителя сайта 2.

Мне сегодня в почту поступило довольно закономерных вопросов от моих читателей.
Итак, отвечаю
Q: Как модифицировать скрипт, чтоб можно было проверить любой IP, который захочется задать?
A:
Очень просто. Достаточно передать скрипту нужный IP (здесь я сделаю это с помощью метода GET)Сначала модифицируем скрипт таким образом:
После
// Подключаем SxGeo.php класс
include("SxGeo.php");

Вставляем код проверки наличия соответствующей переменной GET пусть у нас она будет ip

//проверка наличия переменной
if (!isset($_GET['ip'])) 
  {
    echo 'ERROR|NOT DATA';   //не нашли - вывели сообщение об ошибке и прекратили работу
    die();  
  }  

Далее, нам потребуется проверить IP на валидность, мало ли что нам в GET сунули.
Я обычно организую вначале файла "Область функций", хотя с точки зрения PHP это необязательно, но мне так удобно.
После
//Область заголовков
header('Content-type: text/plain; charset=utf8');

Добавляю функцию проверки IP на валидность
// ---------Область функций ---------

function isip($ip_str) //проверка соответствия данных формату IP
{
  $ip_pattern="#(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)#";
  $ret=FALSE;
 if (preg_match($ip_pattern,$ip_str)) 
  {
     $ret=TRUE;
  }
  return $ret;
}
// ---------Конец области функций ---------

Далее, после проверки наличия переменной, вставляем проверку на валидность IP
$ip=$_GET['ip'];
// проверка на соответствие формату
if (!isip($ip))
{
    echo 'ERROR|NOT IP';   //не IP - вывели сообщение об ошибке и прекратили работу
    die();  	
}

Далее, все как в предыдущей серии. Создаем объект SxGeo и скармливаем ему айпишник, да выводим данные в удобной форме.
Скачать можно здесь, Посмотреть как работает - здесь. Для примера в ссылку вставлен IP прокси анончика из комментария к предыдущей заметке.

тот самый анончик, точнее его прокси


реакция на попытку передать ерунду


или передать ничего

Начало Продолжение

Tags: , ,
Comments
(Anonymous)

А что будет еси этому скпепту падсунуит часный ип иле лоопбэк?