php 判断IP为有效IP地址的方法


Posted in PHP onJanuary 28, 2018

多数人看到这篇日志,第一印象肯定是以为是要讲如何通过正则表达式来判断。

非也,在php5.2.0之后,有专门的函数来做这个判断了。

判断是否是合法IP

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

判断是否是合法的IPv4 IP地址

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

判断是否是合法的公共IPv4地址,192.168.1.1这类的私有IP地址将会排除在外

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

判断是否是合法的IPv6地址

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

判断是否是public IPv4 IP或者是合法的Public IPv6 IP地址

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

本文来源:http://www.electrictoolbox.com/php-validate-ip-address-filter-var/

通常情况下,我们可以选择使用正则表达式实现,具体的可以参考这篇文章。

PHP 相关文章推荐
用php写的serv-u的web申请账号的程序
Oct 09 PHP
php短域名转换为实际域名函数
Jan 17 PHP
解析PHP函数array_flip()在重复数组元素删除中的作用
Jun 27 PHP
ThinkPHP添加更新标签的方法
Dec 05 PHP
微信公众平台接口开发入门示例
Dec 24 PHP
PHP生成器简单实例
May 13 PHP
php编程中echo用逗号和用点号连接的区别
Mar 26 PHP
PHP cURL获取微信公众号access_token的实例
Apr 28 PHP
php ajax数据传输和响应方法
Aug 21 PHP
PHP命名空间简单用法示例
Dec 28 PHP
laravel5.6 框架邮件队列database驱动简单demo示例
Jan 26 PHP
php7中停止php-fpm服务的方法详解
May 09 PHP
Laravel中unique和exists验证规则的优化详解
Jan 28 #PHP
win10 apache配置虚拟主机后localhost无法使用的解决方法
Jan 27 #PHP
PHP设计模式之注册树模式分析
Jan 26 #PHP
PHP微信开发之微信录音临时转永久存储
Jan 26 #PHP
PHP CURL与java http使用方法详解
Jan 26 #PHP
php实现mysql连接池效果实现代码
Jan 25 #PHP
php使用imagecopymerge()函数创建半透明水印
Jan 25 #PHP
You might like
用 Composer构建自己的 PHP 框架之使用 ORM
2014/10/30 PHP
php提示Failed to write session data错误的解决方法
2014/12/17 PHP
PHP htmlspecialchars_decode()函数用法讲解
2019/03/01 PHP
PHP7创建销毁session的实例方法
2020/02/03 PHP
PHP 命名空间和自动加载原理与用法实例分析
2020/04/29 PHP
解决jquery的datepicker的本地化以及Today问题
2012/05/23 Javascript
详解jQuery插件开发中的extend方法
2013/11/19 Javascript
JavaScript实现穷举排列(permutation)算法谜题解答
2014/12/29 Javascript
谈谈Jquery ajax中success和complete有哪些不同点
2015/11/20 Javascript
基于javascript实现精确到毫秒的倒计时限时抢购
2016/04/17 Javascript
前端js文件合并的三种方式推荐
2016/05/19 Javascript
原生JavaScript编写canvas版的连连看游戏
2016/05/29 Javascript
Jquery UI实现一次拖拽多个选中的元素操作
2020/12/01 Javascript
JS判断输入的字符串是否是数字的方法(正则表达式)
2016/11/29 Javascript
ES6新特性二:Iterator(遍历器)和for-of循环详解
2017/04/20 Javascript
JavaScript操作文件_动力节点Java学院整理
2017/06/30 Javascript
解析vue中的$mount
2017/12/21 Javascript
浅谈关于iview表单验证的问题
2018/09/29 Javascript
node解析修改nginx配置文件操作实例分析
2019/11/06 Javascript
解决vuex刷新数据消失问题
2020/11/12 Javascript
[02:49]DOTA2完美大师赛首日观众采访
2017/11/23 DOTA
python实现DES加密解密方法实例详解
2015/06/30 Python
Python开发之快速搭建自动回复微信公众号功能
2016/04/22 Python
python基础_文件操作实现全文或单行替换的方法
2017/09/04 Python
python如何去除字符串中不想要的字符
2020/07/05 Python
python 将有序数组转换为二叉树的方法
2019/03/26 Python
python 计算概率密度、累计分布、逆函数的例子
2020/02/25 Python
python实现ssh及sftp功能(实例代码)
2020/03/16 Python
快速解决pymongo操作mongodb的时区问题
2020/12/05 Python
pytorch 实现L2和L1正则化regularization的操作
2021/03/03 Python
EJB面试题
2015/07/28 面试题
用Python写一个for循环的例子
2016/07/19 面试题
高分子材料与工程专业推荐信
2013/12/01 职场文书
中专生求职自荐信范文
2013/12/22 职场文书
爱护公共设施的标语
2014/06/24 职场文书
汶川大地震感悟
2015/08/10 职场文书