我有一个脚本,通过一个IP数组循环,并检查客户IP对他们。根据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的一面呢?
恕我直言,这是迄今为止最好的,最简单的答案 - 它不需要循环。 +1! – Dutchie432 2015-02-18 19:36:24