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側のことですか?