Автор Тема: Узнать наличие IP адреса в диапазоне  (Прочитано 436 раз)

kak2z

  • Administrator
  • Full Member
  • *****
  • Сообщений: 113
    • Просмотр профиля
Получить IP пользователя можно так к примеру
$_SERVER['REMOTE_ADDR']
проверить валидность строки в соотвествии с стандартом IP адресов так
$is_ip = filter_var(trim($value), FILTER_VALIDATE_IP, FILTER_FLAG_IPV4);
где:
$value наш IP в виде 192.168.1.1
trim - убираем ненужные символы вначале и в конце строки
filter_var проверяем переменную в соответствии с FILTER_VALIDATE_IP, FILTER_FLAG_IPV4


if(floatval(sprintf('%u', ip2long($user_ip))) >= floatval(sprintf('%u', ip2long($is_ip1))) && floatval(sprintf('%u', ip2long($user_ip))) <= floatval(sprintf('%u', ip2long($is_ip2)))){
    echo 'IP входит в диапазон от $is_ip1 до $is_ip2';
}

floatval - Возвращает значение переменной в виде числа с плавающей точкой
sprintf - форматирует строку, если указан ключ %u то отрицательное преобразуется в целое..
ip2long - преобразует IP адрес в число которое потом можно сравнить.. учитывая что число получается выходящее за значения целых чисел - то надо приводить к float формату..