Categories: PHP编程

用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
}
5.0
02
bash命令: trap
PHP cURL: Fixing the “SSL certificate problem: unable to get local issuer certificate” error.
嘻嘻

嘻嘻IT: 笔者是一个工作七八年的程序猿老鸟,从事涉及的技术栈主要包括PHP、Linux、Devops等,喜欢研究新技术,尝试新技术,提升技术自动化和开发效率,致力于write less,do more! 技术每年都会层出不穷,领域划分的越来越细,不可能学习所有的东西,保持对技术的好奇心,理解技术中核心思想,做一个有深度,有思想的开发!

Recent Posts

CrowdStrike是一个AI云原生平台

CrowdStrike是全球网…

8小时 ago

Tabnine是一款AI编程助手

Tabnine是一款最新的AI…

1天 ago

Adrenaline一个AI开发工具

Adrenaline是一个革命…

1天 ago

Kubeflow一个简化Kubernetes学习工作流程工具

在机器学习(ML)领域,有效地…

1天 ago

CodiumAI一个AI测试工具

CodiumAI不完全依赖于手…

1天 ago

Writesonic一个AI创作助手

Writesonic是一个先进…

1天 ago