25.14. Wie kann ich prüfen, ob eine IP-Adresse in einem bestimmten Bereich liegt?Antwort von Johannes FrömterPHP4 bietet die Funktion ip2long() , mit der man eine IP-Adresse in Punktschreibweise ("dotted quad") in die numerische Form umrechnen kann, was einen einfachen größer/kleiner-Vergleich erlaubt. Der Haken daran: Bei PHP beträgt der Maximalwert eines Integer-Typen etwas über 2 Milliarden (genau: 2.147.483.647, vorzeichenbehafteter 32-Bit-Wert), was für die Umrechnung von IP-Adressen nicht ausreicht; bei 127.255.255.255 ist Schluss, danach wechselt das Vorzeichen. Wandelt man die IP dagegen in einen String um, gibt es dieses Limit nicht. Dann kann man einfach mittels if() oder strcmp() vergleichen: if (ip2str($start) <= ip2str($ip) AND ip2str($ip) <= ip2str($ende)) ... function ip2str($ip) { $ip = preg_replace("/(\d{1,3})\.?/e", 'sprintf("%03d", \1)', $ip); return (string)$ip; } |
||
25.14. Wie kann ich prüfen, ob eine IP-Adresse in einem bestimmten Bereich liegt? http://www.php-faq.de/q/q-code-ip-bereich.html |
||
Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team |