用PHP的filter_var函数验证IP地址

PHP中filter_var函数可以验证IP地址是否有效,还可以进一步验证IP地址是IPv4 IP、IPv6 IP还是不在专用或保留范围内。这篇文章展示了一些使用filter\u var的例子。

所需的最低PHP版本

请注意,filter_var函数至少需要PHP版本5.2.0。默认情况下,它包含在版本>=5.2.0中

验证IP地址

要简单地检查IP地址是否有效,请执行以下操作:

if(filter_var($ip, FILTER_VALIDATE_IP)) {
  // it's valid
}
else {
  // it's not valid
}

如果有效,则返回传入的$ip地址;如果无效,则返回false。上述基本用法对任何有效IP地址都有效,包括IPv4、IPv6、专用和保留范围IP。

验证IPv4 IP地址

要验证IPv4 IP地址(例如120.138.20.36),还需要传入FILTER\ FLAG\ IPv4 FLAG。以下示例将对常规IPv4 IP地址以及专用和保留范围有效。

if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) {
  // it's valid
}
else {
  // it's not valid
}

验证IPv4地址,不包括私有范围地址

要验证IPv4地址但不允许包含私有范围地址(例如192.168.1.1),请同时使用FILTER_FLAG_NO_PRIV_RANGE 标志。这将添加到通过|位运算符传递的标志中。例如:

if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE)) {
  // it's valid
}
else {
  // it's not valid
}

使用上述示例,120.138.20.36将有效,但192.168.1.1将无效。

验证IPv6地址

这与IPv4地址相同,但使用筛选器FILTER_FLAG_IPV6 标志:

if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) {
  // it's valid
}
else {
  // it's not valid
}
bash命令: trap
PHP cURL: Fixing the “SSL certificate problem: unable to get local issuer certificate” error.
Tags: