2016-10-01 128 views
1
var_dump(filter_var('10.1.1.1', FILTER_VALIDATE_IP, FILTER_FLAG_NO_RES_RANGE)); 

打印(在PHP 7.0.11):BUG在PHP 7.0.11,FILTER_FLAG_NO_RES_RANGE

bool(false) 

但根据文档是应该打印:

string(8) "10.1.1.1" 

PHPDoc的:FILTER_FLAG_NO_RES_RANGE http://php.net/manual/en/filter.filters.flags.php

未通过以下保留IPv4范围的验证:0.0.0.0/8, 169.254.0.0/16,127.0.0.0/8和240.0.0.0/4。

未通过以下保留IPv6范围的验证::: 1/128, ::/128,:: ffff:0:0/96和fe80 ::/10。

这是一个错误还是我错过了什么?

回答

1

10.1.1.1一个reserved IP addresses。这是#1954引入的突破性更改。它将被修复为#2113

+0

但它在https://3v4l.org/DONMm#v5625版本中甚至没有一致。所以它应该过滤所有保留/不公开的路由IP地址?我如何更新PHP文档? – Mvorisek

+0

是的,等待https://github.com/php/php-src/pull/2113 – Federkun