IP地址未验证

时间:2015-04-10 15:03:10

标签: php filter ip

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");
    }

?>

1 个答案:

答案 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地址。