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 相关文章推荐
Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)
Jul 23 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(三)
Jun 23 PHP
PHP实现递归复制整个文件夹的类实例
Aug 03 PHP
php实现Session存储到Redis
Nov 11 PHP
PHP获取input输入框中的值去数据库比较显示出来
Nov 16 PHP
php中照片旋转 (orientation) 问题的正确处理
Feb 16 PHP
php 根据自增id创建唯一编号类
Apr 06 PHP
Laravel框架使用Seeder实现自动填充数据功能
Jun 13 PHP
PHP实现微信商户支付企业付款到零钱功能
Sep 30 PHP
PHP面向对象程序设计之多态性的应用示例
Dec 19 PHP
Laravel创建数据库表结构的例子
Oct 09 PHP
php实现的证件照换底色功能示例【人像抠图/换背景图】
May 29 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和XSS跨站攻击的防范
2007/04/17 PHP
PHP session有效期问题
2009/04/26 PHP
ajax+php打造进度条 readyState各状态
2010/03/20 PHP
PHP 7.0.2 正式版发布
2016/01/08 PHP
php项目中类的自动加载实例讲解
2019/09/12 PHP
Expandable "Detail" Table Rows
2007/08/29 Javascript
JavaScript CSS菜单功能 改进版
2008/12/20 Javascript
自己实现string的substring方法 人民币小写转大写,数字反转,正则优化
2012/09/02 Javascript
js 距离某一时间点时间是多少实现代码
2013/10/14 Javascript
3种不同方式的焦点图轮播特效分享
2013/10/30 Javascript
jquery 判断滚动条到达了底部和顶端的方法
2014/04/02 Javascript
深入浅析JavaScript中对事件的三种监听方式
2015/09/29 Javascript
基于javascript实现图片左右切换效果
2016/01/25 Javascript
Bootstrap中的fileinput 多图片上传及编辑功能
2016/09/05 Javascript
layer弹出层中H5播放器全屏出错的解决方法
2017/02/21 Javascript
js编写简单的聊天室功能
2017/08/17 Javascript
详解从新建vue项目到引入组件Element的方法
2017/08/29 Javascript
最新Javascript程序员面试试题和解题方法
2017/11/23 Javascript
利用Javascript实现一套自定义事件机制
2017/12/14 Javascript
详解html-webpack-plugin用法全解
2018/01/22 Javascript
详解JSON Web Token 入门教程
2018/07/30 Javascript
解决Js先触发失去焦点事件再执行点击事件的问题
2018/08/30 Javascript
vue使用i18n实现国际化的方法详解
2019/09/05 Javascript
微信小程序使用蓝牙小插件
2019/09/23 Javascript
vue中用 async/await 来处理异步操作
2020/07/18 Javascript
JavaScript实现网页下拉菜单效果
2020/11/20 Javascript
[51:17]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python使用心得之获得github代码库列表
2014/06/25 Python
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
2016/07/04 Python
python对验证码降噪的实现示例代码
2019/11/12 Python
如何设置PyCharm中的Python代码模版(推荐)
2020/11/20 Python
美国著名手表网站:Timepiece
2017/11/15 全球购物
Lyle & Scott苏格兰金鹰官网:英国皇室御用品牌
2018/05/09 全球购物
全国税务系统先进集体事迹材料
2014/05/19 职场文书
霸气押韵的班级口号
2014/06/09 职场文书
小学教师年度个人总结
2015/02/05 职场文书