Validação de intervalo de endereços IP PHP

Validação de intervalo de endereços IP PHP

Estou configurando o trialpay para meu site. O site mostra:

As solicitações originam-se do seguinte intervalo de endereços IP: 70.42.249.1 - 70.42.249.255

Em PHP, como verifico se o bot/pessoa que visita minha página de autenticação está dentro do intervalo de IP acima?

Responder1

Como você está lidando com endereços IP, provavelmente é mais fácil tratá-los como números inteiros em vez de strings. Você pode usar oip2long()função para fazer isso.

Aqui está uma função de trabalho para ajudá-lo:

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

Responder2

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

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

}

Algo nesse sentido. E sim, isso provavelmente deveria ser movido para Stackoverflow.

informação relacionada