Мне сегодня в почту поступило довольно закономерных вопросов от моих читателей.
Итак, отвечаю
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 прокси анончика из комментария к предыдущей заметке.
тот самый анончик, точнее его прокси
реакция на попытку передать ерунду
или передать ничего
Начало Продолжение
Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/268782.html
Прокомментировать заметку можно по ссылке выше.
Pingback: Определение IP и местоположения посетителя сайта. | Персональный блог Толика Панкова
Pingback: Определение IP и местоположения посетителя сайта 3. | Персональный блог Толика Панкова