2016-08-23 10 views
-1

Kann jemand erklären, warum der folgende Code in < 5.6.25 truthy zurückgibt, und für alles oben falsch? Mein Verständnis ist es sollte truthy sein, wie 192.168.0.1 ist eine gültige interne IP.IP-Validierung inkonsistent von PHP 5.6.25

var_dump(filter_var('192.168.0.1', FILTER_VALIDATE_IP, FILTER_FLAG_NO_RES_RANGE | FILTER_FLAG_IPV4));

Siehe Ergebnisse in Versionen: https://3v4l.org/u9OFt

Antwort

3

192.168.x für Klasse-C-Adressen im reservierten Bereich ist, und Sie haben FILTER_FLAG_NO_RES_RANGE angegeben, sie auszuschließen.

Es ist möglich, dies ein Fehler behebt in 5.6.25 an war, mit einer Regression in den ersten Versionen von 7.x

+0

ich reserviert und privat verwirrend sein kann hier. – jedifans

+0

Macht Sinn. Ich habe 'FILTER_FLAG_NO_RES_RANGE' als _allowing_ reservierte Bereiche falsch gelesen. Ich kann nicht scheinen, Verweis auf die Änderung im changelog zu finden, obwohl es Sinn macht, wie es jetzt ist – shauno

+0

'Filter: Korrigierter Fehler # 71745 (FILTER_FLAG_NO_RES_RANGE deckt nicht gesamten Bereich 127.0.0.0/8 ab '@shauno –