Validación del rango de direcciones IP de PHP

Validación del rango de direcciones IP de PHP

Estoy configurando pago de prueba para mi sitio web. El sitio web muestra:

Las solicitudes se originan en el siguiente rango de direcciones IP: 70.42.249.1 - 70.42.249.255

En PHP, ¿cómo verifico si el bot/la persona que visita mi página de autenticación se encuentra dentro del rango de IP anterior?

Respuesta1

Dado que se trata de direcciones IP, probablemente sea más fácil tratarlas como números enteros en lugar de cadenas. Puedes usar elip2long()función para hacer esto.

Aquí tienes una función funcional que te ayudará:

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

Respuesta2

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

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

}

Algo parecido a eso. Y sí, esto probablemente debería trasladarse a Stackoverflow.

información relacionada