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.