Ich habe ein Skript, das eine Reihe von IP-Adressen durchläuft und überprüft die IP-Clients gegen sie.Überprüfen Besucher IP gegen eine Tabelle von IPs. Einige Wildcards
//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;
}
Die Sache ist, ich meine Liste von IP-Adressen in einer Tabelle sein will, und ich mag es so effizient wie möglich machen. Die einzige Möglichkeit, dies zu sehen, besteht darin, SELECT * zu wählen und jede Schleife nacheinander zu durchlaufen. Kann jemand einen effizienteren Weg sehen, dies zu tun? Vielleicht auf der MySQL-Seite der Dinge?
IMHO ist dies bei weitem die beste, einfachste Antwort - und es erfordert keine Schleife. +1 !! – Dutchie432