PlI不知道为什么这段代码不起作用:
<?php
$ip = "127.0.0.1";
if (!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_IPV6 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) === false) {
echo("$ip is a valid IP address");
} else {
echo("$ip is not a valid IP address");
}
?>
答案 0 :(得分:2)
您的问题是标志:FILTER_FLAG_NO_RES_RANGE
如果您阅读manual,您会看到保留127.0.0.1
,因为它位于保留范围内:
FILTER_FLAG_NO_RES_RANGE 对以下保留的IPv4范围验证失败:0.0.0.0 / 8,169.254.0.0 / 16,192.0.2.0 / 24和224.0.0.0/4。该标志不适用于IPv6地址。