Мне сегодня в почту поступило довольно закономерных вопросов от моих читателей.
Итак, отвечаю
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 прокси анончика из комментария к предыдущей заметке.
тот самый анончик, точнее его прокси
реакция на попытку передать ерунду
или передать ничего
Начало Продолжение