O'Reilly logo

PHP-Sicherheit: PHP/MySQL-Webanwendungen sicher programmieren by Stefan Esser, Christopher Kunz

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

2039.8 IP-Adressen prüfen
Sie können diese Umwandlung mit der Extension ext/idn
2
aus PECL
oder anderen Lösungen durchführen.
9.8 IP-Adressen prüfen
Bisweilen benötigt man in einer PHP-Anwendung IP-Adressen aus
Benutzereingaben – etwa für ein Programm, das basierend auf einer IP-
Adresse Netzwerk- und Broadcast-Adresse berechnet, oder um einen
Datenbankserver in einem internen Netzwerk anzusprechen. IP-Adres-
sen zu validieren, ist eine recht trickreiche und undankbare Aufgabe,
denn neben einigen Sonderfällen, die einzeln abgeprüft werden müs-
sen, können Sie auch bei einer nachweislich syntaktisch korrekten IP-
Adresse nicht ohne Weiteres nachprüfen, ob diese Adresse auch zu
jedem Zeitpunkt erreichbar ist, d.h. geroutet wird. Sie können jedoch
mit ext/filter einige Stolperfallen eliminieren, die bei von Nutzern
angegebenen IP-Adressen häufig vorkommen.
Der für die Prüfung von IP-Adressen benutzte Filter lautet
FILTER_VALIDATE_IP, er ist sowohl für die herkömmlichen IPv4-Adres-
sen als auch für IPv6-Adressen gebräuchlich. IPv4-Adressen müssen
jedoch im »dotted quad«-Format vorliegen, das Long-Format wird
nicht unterstützt. Um zwischen den beiden Adressierungstypen zu
unterscheiden, gibt es zwei Flags:
FILTER_FLAG_IPV4 für IPv4-Adressen
FILTER_FLAG_IPV6 für das neue IPv6-Format
Eine IPv4-Adresse zu prüfen, geht also recht einfach:
filter_var("23.42.47.11", FILTER_VALIDATE_IP, array("flags" =>
FILTER_FLAG_IPV4));
Analog prüfen Sie eine IPv6-Adresse:
filter_var("fe80::ffff:ffff:fffd", FILTER_VALIDATE_IP,
array("flags" => FILTER_FLAG_IPV6));
Um auszuschließen, dass die vom Nutzer angegebene IP-Adresse nicht
in einem sogenannten privaten bzw. einem reservierten Netzwerk liegt,
können Sie mit zwei weiteren Flags diese Netze ausschließen. Damit
verhindern Sie, dass nicht über das Internet erreichbare IP-Adressen
angegeben werden.
2. http://pecl.php.net/package/idn
#C8>+5>3=-259<</5>/ .</==/87K==/883-2>/<</3-2,+<=/38

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required