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 sprintf()函数用例解析
May 18 PHP
php数组函数序列之array_unique() - 去除数组中重复的元素值
Oct 29 PHP
基于php socket(fsockopen)的应用实例分析
Jun 02 PHP
高性能PHP框架Symfony2经典入门教程
Jul 08 PHP
php实现的DateDiff和DateAdd时间函数代码分享
Aug 16 PHP
CentOS 6.3下安装PHP xcache扩展模块笔记
Sep 10 PHP
PHP使用http_build_query()构造URL字符串的方法
Apr 02 PHP
php使用strip_tags()去除html标签仍有空白的解决方法
Jul 28 PHP
使用正则去除php代码中的注释方法
Nov 03 PHP
微信开发之获取JSAPI TICKET
Jul 07 PHP
PHP实现的ID混淆算法类与用法示例
Aug 10 PHP
Windows上php5.6操作mongodb数据库示例【配置、连接、获取实例】
Feb 13 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
windwos下使用php连接oracle数据库的过程分享
2014/05/26 PHP
PHP移动文件指针ftell()、fseek()、rewind()函数总结
2014/11/18 PHP
php上传中文文件名乱码问题处理方案
2015/02/03 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
PHPStorm2020.1永久激活及下载更新至2020(推荐)
2020/09/25 PHP
Safari5中alert的无限循环BUG
2011/04/07 Javascript
JS防止用户多次提交的简单代码
2013/08/01 Javascript
jQuery实现的点赞随机数字显示动画效果(附在线演示与demo源码下载)
2015/12/31 Javascript
JavaScript作用域示例详解
2016/07/07 Javascript
jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
2017/03/24 jQuery
.net MVC+Bootstrap下使用localResizeIMG上传图片
2017/04/21 Javascript
vue实现单选和多选功能
2017/08/11 Javascript
Vue.js实现双向数据绑定方法(表单自动赋值、表单自动取值)
2018/08/27 Javascript
vue中使用cookies和crypto-js实现记住密码和加密的方法
2018/10/18 Javascript
Python函数嵌套实例
2014/09/23 Python
Python线程指南详细介绍
2017/01/05 Python
python操作redis方法总结
2018/06/06 Python
Django Celery异步任务队列的实现
2019/07/24 Python
python文字和unicode/ascll相互转换函数及简单加密解密实现代码
2019/08/12 Python
Python 实现try重新执行
2019/12/21 Python
详解Python中pyautogui库的最全使用方法
2020/04/01 Python
python3通过udp实现组播数据的发送和接收操作
2020/05/05 Python
python调用API接口实现登陆短信验证
2020/05/10 Python
Python 如何创建一个线程池
2020/07/28 Python
用OpenCV进行年龄和性别检测的实现示例
2021/01/29 Python
购买限量版收藏品、珠宝和礼品:Bradford Exchange
2016/09/23 全球购物
Paul Smith英国官网:英国国宝级时装品牌
2019/03/21 全球购物
Regatta官网:英国最受欢迎的户外服装和鞋类品牌
2019/05/01 全球购物
推荐信格式范文
2014/05/09 职场文书
领导批评与自我批评范文
2014/10/16 职场文书
2015年教师节慰问信
2015/03/23 职场文书
党员干部学习三严三实心得体会
2016/01/05 职场文书
2016年禁毒宣传活动总结
2016/04/05 职场文书
解决SpringCloud Feign传对象参数调用失败的问题
2021/06/23 Java/Android
spring cloud gateway中如何读取请求参数
2021/07/15 Java/Android
nginx共享内存的机制详解
2022/03/21 Servers