我有一个脚本,它循环遍历一组 IP,并针对它们检查客户端 IP。
//filter IP address list
$ip = array();
$ip[] = '10.10.5.*';
$ip[] = '234.119.260.65';
$ip[] = '234.119.254.2';
function testIP($ip){
//testing that correct IP address used
for($i=0, $cnt=count($ip); $i<$cnt; $i++) {
$ipregex = preg_replace(”/\./”, “\.”, $ip[$i]);
$ipregex = preg_replace(”/\*/”, “.*”, $ipregex);
if(preg_match('/'.$ipregex.'/', $_SERVER[REMOTE_ADDR])){
// apply filter
return true;
}
//do not apply filter
return false;
}
问题是,我希望我的 ip 地址列表在一个表中,并且我想让它尽可能高效。我能看到的唯一方法是 SELECT * ,然后依次循环遍历每一个。任何人都可以看到更有效的方法吗?也许在 MySQL 方面?