$ipAdd=$_POST['ip'];
if (filter_var($ipAdd, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_RES_RANGE | FILTER_FLAG_NO_PRIV_RANGE) === false) {
echo "Invalid IP Address";
}
else {
echo 'Your IP is: '.$ipAdd;
}
答案 0 :(得分:0)
选项可以按照您在评论中描述的数组传递,但并不完全像您想要的那样。请参阅http://php.net/manual/en/function.filter-var.php了解正确的格式。
$options = array(
'flags' => FILTER_FLAG_IPV4 | FILTER_FLAG_NO_RES_RANGE | FILTER_FLAG_NO_PRIV_RANGE
);
$ipAdd = isset($_POST['ip'])?$_POST['ip']:"";
if(filter_var($ipAdd, FILTER_VALIDATE_IP, $options) === false){
echo "Invalid IP Address";
} else {
echo 'Your IP is: '.$ipAdd;
}
您必须使用管道(|
),因为它们是按位运算符。过滤器标志等于二进制值。