PHP: проверка ip адреса на принадлежность к указанным сетям

Как то раз, у меня появилась необходимость выдавать разный контент для клиентов из разных сетей. И мы, с моим многоуважаемым другом набросали для этой цели вот такой небольшой скриптик на php. Области применения можете придумывать сами. :)

[ тут был кривой и нерабочий код.. :) ]
UPDATE:
И вот недавно выяснилось, что скрипт этот работает криво. Короче говоря, я немного поковырялся в нете, и нашёл более подходящий вариант, который я просто немного переделал:

$netlist = explode("\n", file_get_contents($_SERVER['DOCUMENT_ROOT'].'/networks.txt')); // для удобства, сети размещены в файле столбиком.

function checkip($ip, $nets) {
foreach($nets as $network) {
if(!empty($network)){
$ip_arr = explode ( '/' , $network );
$network_long = ip2long ( $ip_arr [ 0 ]);

$x = ip2long ( $ip_arr [ 1 ]);
$mask = long2ip ( $x ) == $ip_arr [ 1 ] ? $x : 0xffffffff << ( 32 - $ip_arr [ 1 ]);
$ip_long = ip2long ( $ip );
if(($ip_long & $mask ) == ( $network_long & $mask )){
return 1;
}
}
}
}

и далее уже можно выполнять проверку, и редиректить клиентов туда, куда нужно, например, вот таким образом:

if(checkip($_SERVER['REMOTE_ADDR'], $netlist )){
header('location: http://int.site.com'.$_SERVER['REQUEST_URI']);
} else {
header('location: http://ext.site.com'.$_SERVER['REQUEST_URI']);
}