Проверка диапазона IP-адресов PHP

Проверка диапазона IP-адресов PHP

Я настраиваю trialpay для своего сайта. Сайт показывает:

Запросы исходят из следующего диапазона IP-адресов: 70.42.249.1 - 70.42.249.255

Как в PHP проверить, попадает ли бот/человек, посещающий мою страницу аутентификации, в указанный выше диапазон IP-адресов?

решение1

Поскольку вы имеете дело с IP-адресами, вероятно, проще рассматривать их как целые числа, а не как строки. Вы можете использоватьip2long()функция, позволяющая это сделать.

Вот рабочая функция, которая вам поможет:

function ipbetweenrange($needle, $start, $end) {
  if((ip2long($needle) >= ip2long($start)) && (ip2long($needle) <= ip2long($end))) {
    return true;
  }
  return false;
}

$ipstart = '70.42.249.1';
$ipend = '70.42.249.255';

echo ipbetweenrange('70.42.249.1', $ipstart, $ipend); // true
echo ipbetweenrange('70.42.249.255', $ipstart, $ipend); // true
echo ipbetweenrange('70.42.249.128', $ipstart, $ipend); // true
echo ipbetweenrange('192.168.0.1', $ipstart, $ipend); // false

решение2

foreach( range( 1, 255 ) as $number )
{

    if( $userIp == '70.42.249.' . $number )
        // we have a match, do whatever you want

}

Что-то в этом роде. И да, это, вероятно, следует перенести на Stackoverflow.

Связанный контент