Este es un script muy útil si deseamos que ciertos usuarios no accedan a nuestra web, basándonos en su dirección IP. Existen 2 lista que se puede usar: en una están las direcciones IP que deseamos bloquear su acceso y en la otra lista especificamos un rango de IP’s a bloquear. Si la IP del visitante está en la lista, el script muestra un mensaje al usuario, y luego sale.

<?php
/* Listamos la IPs a bloquear */
$ban_ip_list = array('68.180.206.184', '64.233.167.99', '207.46.232.182');

/* Listamos un rango de IPs. Usamos el comodin '*' para seleccionar un rango de IPs*/
$ban_ip_range = array('69.*.83.197');

/* Obtener dirección IP del visitante */
$user_ip = $_SERVER['REMOTE_ADDR'];

/* Mensaje de salida si el IP del visitante no tiene acceso */
$msg = 'Tu no tienes permiso para acceder a esta página.';

if(in_array($user_ip, $ban_ip_list))
{
exit($msg);
}

/* Chequeamos su la IP del visitante esta dentro del rango de IPs denegadas*/

if(!empty($ban_ip_range))
{
foreach($ban_ip_range as $range)
{
$range = str_replace('*','(.*)', $range);

if(preg_match('/'.$range.'/', $user_ip))
{
exit($msg);
}
}
}


/* De pasar todas las restricciones se le muestra el contenido*/
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Bienvenido</TITLE>
</HEAD>
<BODY>

Contenido del sitio.
</BODY>
</HTML>

Vía Bit Repository