PHP IPV6正则表达式验证代码


Posted in PHP onFebruary 16, 2010

<?php 
// literally from the ABNF in rfc3986 (thanks to 'WCP') 
function validateIPv6($IP) 
{ 
return preg_match('/\A 
(?: 
(?: 
(?:[a-f0-9]{1,4}:){6} ::(?:[a-f0-9]{1,4}:){5} 
(?:[a-f0-9]{1,4})?::(?:[a-f0-9]{1,4}:){4} 
(?:(?:[a-f0-9]{1,4}:){0,1}[a-f0-9]{1,4})?::(?:[a-f0-9]{1,4}:){3} 
(?:(?:[a-f0-9]{1,4}:){0,2}[a-f0-9]{1,4})?::(?:[a-f0-9]{1,4}:){2} 
(?:(?:[a-f0-9]{1,4}:){0,3}[a-f0-9]{1,4})?::[a-f0-9]{1,4}: 
(?:(?:[a-f0-9]{1,4}:){0,4}[a-f0-9]{1,4})?:: 
) 
(?: 
[a-f0-9]{1,4}:[a-f0-9]{1,4} 
(?:(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3} 
(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]) 
) 
(?: 
(?:(?:[a-f0-9]{1,4}:){0,5}[a-f0-9]{1,4})?::[a-f0-9]{1,4} 
(?:(?:[a-f0-9]{1,4}:){0,6}[a-f0-9]{1,4})?:: 
) 
)\Z/ix', 
$IP 
); 
} 
?>

PHP 相关文章推荐
随时给自己贴的图片加文字的php水印
Mar 16 PHP
实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
Jun 11 PHP
php摘要生成函数(无乱码)
Feb 04 PHP
smarty半小时快速上手入门教程
Oct 27 PHP
php类中的各种拦截器用法分析
Nov 03 PHP
php按字符无乱码截取中文的方法
Mar 27 PHP
yii通过小物件生成view的方法
Oct 08 PHP
php基于curl主动推送最新内容给百度收录的方法
Oct 14 PHP
php封装单文件上传到数据库(路径)
Oct 15 PHP
PHP实现统计代码行数小工具
Sep 19 PHP
php判断某个方法是否存在函数function_exists (),method_exists()与is_callable()区别与用法解析
Apr 20 PHP
PHP 扩展Memcached命令用法实例总结
Jun 04 PHP
php foreach 使用&amp;(与运算符)引用赋值要注意的问题
Feb 16 #PHP
PHP 截取字符串函数整理(支持gb2312和utf-8)
Feb 16 #PHP
Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
Feb 16 #PHP
一步一步学习PHP(6) 面向对象
Feb 16 #PHP
一步一步学习PHP(5) 类和对象
Feb 16 #PHP
php 生成静态页面的办法与实现代码详细版
Feb 15 #PHP
IP138 IP地址查询小偷实现代码
Feb 15 #PHP
You might like
php下批量挂马和批量清马代码
2011/02/27 PHP
jQuery EasyUI API 中文文档 - DateBox日期框
2011/10/15 PHP
php学习笔记之面向对象编程
2012/12/29 PHP
通过JS自动隐藏手机浏览器的地址栏实现原理与代码
2013/01/02 Javascript
Jquery封装tab自动切换效果的具体实现
2013/07/13 Javascript
JavaScript动态创建div属性和样式示例代码
2013/10/09 Javascript
jQuery+CSS实现简单切换菜单示例
2016/07/27 Javascript
vue日期组件 支持vue1.0和2.0
2017/01/09 Javascript
微信小程序 es6-promise.js封装请求与处理异步进程
2017/06/12 Javascript
Vue编写多地区选择组件
2017/08/21 Javascript
JavaScript实现兼容IE6的收起折叠与展开效果实例
2017/09/20 Javascript
jQuery事件多次绑定与解绑问题实例分析
2019/02/19 jQuery
微信小程序定义和调用全局变量globalData的实现
2019/11/01 Javascript
关于vue路由缓存清除在main.js中的设置
2019/11/06 Javascript
《javascript设计模式》学习笔记四:Javascript面向对象程序设计链式调用实例分析
2020/04/07 Javascript
解决vue单页面 回退页面 keeplive 缓存问题
2020/07/22 Javascript
[44:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第二局
2016/03/03 DOTA
[53:03]Optic vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
[00:38]TI珍贵瞬间系列(二):笑
2020/08/26 DOTA
python使用socket向客户端发送数据的方法
2015/04/29 Python
CentOS安装pillow报错的解决方法
2016/01/27 Python
Python实现一个转存纯真IP数据库的脚本分享
2017/05/21 Python
python使用正则表达式替换匹配成功的组
2017/11/17 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
2019/07/15 Python
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
2020/02/16 Python
python数据预处理 :样本分布不均的解决(过采样和欠采样)
2020/02/29 Python
带你认识HTML5中的WebSocket
2015/05/22 HTML / CSS
定义一结构体数组表示分数,并求两个分数相加之和
2013/06/11 面试题
酒店管理毕业生自荐信
2013/10/24 职场文书
商务英语本科生的自我评价分享
2013/11/15 职场文书
应聘医药销售自荐书范文
2014/02/08 职场文书
小学校长先进事迹材料
2014/05/13 职场文书
七一活动主持词
2015/06/29 职场文书
pytorch锁死在dataloader(训练时卡死)
2021/05/28 Python
Android Gradle 插件自定义Plugin实现注意事项
2022/06/16 Java/Android
clear 万能清除浮动(clearfix:after)
2023/05/21 HTML / CSS