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 DataGrid 实现代码
Aug 12 PHP
PHP自定义函数收代码
Aug 01 PHP
Smarty的配置与高级缓存技术分享
Jun 05 PHP
PHP写的加密函数,支持私人密钥(详细介绍)
Jun 09 PHP
ThinkPHP页面跳转success与error方法概述
Jun 25 PHP
thinkPHP实现瀑布流的方法
Nov 29 PHP
分享PHP函数实现数字与文字分页代码
Jul 28 PHP
PHP curl模拟登录带验证码的网站
Nov 30 PHP
CodeIgniter辅助之第三方类库third_party用法分析
Jan 20 PHP
Yii CGridView用法实例详解
Jul 12 PHP
Discuz论坛密码与密保加密规则
Dec 19 PHP
thinkphp3.2实现在线留言提交验证码功能
Jul 19 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
php pack与unpack 摸板字符字符含义
2009/10/29 PHP
php中explode与split的区别介绍
2012/10/03 PHP
自己写的php中文截取函数mb_strlen和mb_substr
2015/02/09 PHP
Zend Framework教程之MVC框架的Controller用法分析
2016/03/07 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
2016/11/18 PHP
js 多浏览器分别判断代码
2010/04/01 Javascript
javascript不同类型数据之间的运算的转换方法
2014/02/13 Javascript
排序算法的javascript实现与讲解(99js手记)
2014/09/28 Javascript
JavaScript实现N皇后问题算法谜题解答
2014/12/29 Javascript
JavaScript中的值类型转换介绍
2014/12/31 Javascript
thinkphp实现无限分类(使用递归)
2015/12/19 Javascript
webpack配置的最佳实践分享
2017/04/21 Javascript
微信小程序商品到详情的实现
2017/06/27 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
2018/12/13 Javascript
JS遍历树层级关系实现原理解析
2020/08/31 Javascript
Vue 实现可视化拖拽页面编辑器
2021/02/01 Vue.js
[01:42]辉夜杯战队访谈宣传片—FANTUAN
2015/12/25 DOTA
Python translator使用实例
2008/09/06 Python
python实现ip查询示例
2014/03/26 Python
Python实现基本数据结构中队列的操作方法示例
2017/12/04 Python
PYTHON基础-时间日期处理小结
2018/05/05 Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
2018/05/05 Python
Python拼接微信好友头像大图的实现方法
2018/08/01 Python
Python判断一个list中是否包含另一个list全部元素的方法分析
2018/12/24 Python
pycharm显示远程图片的实现
2019/11/04 Python
Django通过dwebsocket实现websocket的例子
2019/11/15 Python
python获取array中指定元素的示例
2019/11/26 Python
python实现简单坦克大战
2020/03/27 Python
Cynthia Rowley官网:全球领先的生活方式品牌
2020/10/27 全球购物
甲方资料员岗位职责
2013/12/13 职场文书
摄影专业毕业生求职信
2014/03/13 职场文书
售后求职信范文
2014/03/15 职场文书
企业总经理任命书
2014/06/05 职场文书
Apache POI的基本使用详解
2021/11/07 Servers
Axios代理配置及封装响应拦截处理方式
2022/04/07 Vue.js