IP 地址未验证

IP Address is not validating

我不知道为什么这段代码不起作用:

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

?>

你的问题是标志:FILTER_FLAG_NO_RES_RANGE 如果你阅读 manual 你会看到 127.0.0.1 是保留的,因为它在保留范围内:

FILTER_FLAG_NO_RES_RANGE Fails validation for the following reserved IPv4 ranges: 0.0.0.0/8, 169.254.0.0/16, 192.0.2.0/24 and 224.0.0.0/4. This flag does not apply to IPv6 addresses.