09/04/09 01:20:05
>>160
ip2longとかpregとかちょっと重いんじゃね?
あと、行数減らしたいだけならもっと徹底的にやれば?ちょっと見るだけでも短くなるが
function carrier($IPList){
for($ipr=array(),$ipl=ip2long($_SERVER['REMOTE_ADDR']), $i=32;$i>=24;$i--)
$ipr[long2ip($ipl&-pow(2,32-$i)).'/'.$i]=true;
foreach( explode("\n",$IPList) as $val )
if(preg_match( '/^(\w)[\t ]+((\d+\.){3}\d+\/\d{2})/',trim($val),$m)&&isset($ipr[$m[2]])) return $m[1];
return 'p';
}
print carrier($IPList);