Below you can find a simple php script that blocks ip addresses. It uses a function (called iplong) that converts the standard IPv4 address to a long int value and the main function (ban) that checks if a provided ip can be found in a list of blocked addresses. Hope you will find this useful.
function ban($range = array(), $ip = '')
{
$ip = longip(trim($ip));
if($ip == FALSE)
{
return FALSE;
}
if(empty($ip))
{
return FALSE;
}
foreach($range AS $key => $val)
{
$temp = explode('-', $val);
if(empty($temp[0]))
{
return FALSE;
}
else
{
$start_ip = longip(trim($temp[0]));
if($start_ip == FALSE)
{
return FALSE;
}
}
if(empty($temp[1]))
{
if($ip == $start_ip)
{
return TRUE;
}
}
else
{
$stop_ip = longip(trim($temp[1]));
if($stop_ip == FALSE)
{
return FALSE;
}
}
if($start_ip <= $ip && $ip <= $stop_ip)
{
return TRUE;
}
}
return FALSE;
}
function longip($ip)
{
if(empty($ip))
{
return FALSE;
}
$block = explode('.', $ip);
if(count($block) != 4)
{
return FALSE;
}
$i = 3;
$block_ip = 0;
foreach($block as $k => $v)
{
$v = filter_var($v, FILTER_VALIDATE_INT);
if($v < 0)
{
$v = 0;
}
if($v > 255)
{
$v = 255;
}
$block_ip += pow(256, $i)*$v;
$i--;
}
return $block_ip;
}
//usage
$block_range = array( '192.168.1.0 - 192.168.2.255',
'192.168.4.0 - 192.168.4.255',
'192.168.6.1'
);
$ip = '192.168.3.255';
if(ban($block_range, '192.168.6.1'))
{
echo "BAN\n";
}
else
{
echo "UNBAN\n";
}

