最近做到项目调整支持IPv6,总结一下:

IPv4的正则表达式

IPv4通常用点分十进制记法书写,例如10.100.51.148,其中的数字都是十进制,中间用实心圆点分隔。

   /*验证IPv4*/private function validateIPv4($ip){return preg_match("/^((25[0-5]|2[0-4]\d|[01]?\d\d?)($|(?!\.$)\.)){4}$/", $ip);}

一 每段为0-255的数字,有时加入 |\* 允许输入 * 号代替数字。

  1. 25[0-5] 匹配 250-255
  2. 2[0-4]\d 匹配 200-249
  3. [01]?\d\d? 匹配 0-199 个位数/两位数/0或1开头的三位数

二 连接符和结尾

  1. $| 匹配最后一段直接结束
  2. (?!\.$) 负向预查,表示不能以 . 结尾
  3. \. 连接符
  4. {4} 必须是4段

IPv6的正则表达式

IPv6的128位地址通常写成8组,每组为四个十六进制数的形式。
比如:CDCD:910A:2222:5498:8475:1111:3900:2020。
如果几个连续段位的值都是0,那么这些0就可以简单的以::来表示,只能用一次
前导的零可以省略。

    /*验证IPv6*/private function validateIPv6($ip){return preg_match("/^(([\da-fA-F]{1,4}){0,1}($|(?!:$):)){2,8}$/", $ip);}

一 每段为四个十六进制数。

  1. ([\da-fA-F]{1,4}) 匹配 数字或字母,因为前导0可以省略,最少有一位
  2. {0,1} 零压缩法::中间的0000被省略,:: 里没有内容

二 连接符和结尾

  1. $| 匹配最后一段直接结束
  2. (?!: $): )) 负向预查,表示不能以 : 结尾
  3. : 连接符
  4. {2,8} 最少2段,最多8段

如有不足,欢迎指正。

IPv4和IPv6的正则表达式相关推荐

  1. ipv6正则表达式 java,用正则表达式解析IPv4跟IPv6地址字符串

    用正则表达式解析IPv4和IPv6地址字符串 以下是经过我的.net C# 代码百般测试的,绝对经得住考验! IPv4[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9] ...

  2. IPV4及IPV6正则表达式详解

    IPV4及IPV6正则表达式详解 一. 背景 二.实际应用情况 2.1 IPv4 2.1.1 IPv4说明 2.1.2 IPv4地址解析 2.1.3 IPv4正则表达式 2.2 IPv6 2.2.1 ...

  3. IPv4 和 IPv6 正则表达式

    IPv4 和 IPv6 正则表达式 Pv4 地址例如,"192.168.0.2",为 . 分割的4段数字,数字范围为 0 - 255,而我们的正则表达式需要匹配的就是 0 - 25 ...

  4. ipv4、ipv6格式校验代码

    ipv4.ipv6格式校验代码 一.题目 IPv4 地址格式: IPv4地址由4组十进制数组成,每组范围为 0 - 255,用"."分割. 注意:IPv4 地址内的数不能以 0 开 ...

  5. js IPV 4 IPV6 校验 正则表达式

    百度了很多正则表达式,很多都不准确,或者不全面,下边是实验很多个正则之后,选用的一个非常准确的正则 IPV4 地址校验的正则表达式: /^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[ ...

  6. 记录一次nginx升级,支持ipv4和ipv6访问https

    项目要求,需要让现有网站项目支持https,并同时支持ipv6访问,经过分析,现在nginx版本较老,所以决定升级nignx,并且同步配置https和ipv6. 升级准备 服务器网络环境需要支持ipv ...

  7. 漫话:全球 IPv4 地址正式耗尽?是时候说说到底什么是IPv4和IPv6了!

    2019年11月25日,负责英国.欧洲.中东和部分中亚地区互联网资源分配的欧洲网络协调中心(RIPE NCC)宣布,其最后的 IPv4 地址空间储备池在 11 月 25 日 UTC + 1 15:35 ...

  8. IPv6相比IPv4在那些方面做出了改进?IPv4 to IPv6过渡的三种tunnel技术各自的特性...

    改进 地址空间的扩容,地址容量为2^128(或(43亿)^4) 配置更加简单,支持非DHCP自动配置地址: 层次化网络结构,每个地区使用相同前缀的地址范围,更加容易管理: 报头格式简单灵活,去除了IP ...

  9. 【计算机网络】网络层 : 总结 ( 功能 | 数据交换 | IP 数据报 | IPv4 地址 | IPv6 地址 | 路由选择协议 | 路由算法 )★★★

    文章目录 一.网络层功能 二.数据交换方式 ★ 三.IP 数据报 ★ 四. IPv4 地址 ★★ 1 . IP 地址 发展 : 2 . 分类 IP 地址 3 . NAT 转换 4 . 子网划分 5 . ...

最新文章

  1. 有关EUV光刻机,你需要知道这些
  2. 在 StringGrid 上画线时, 使用 GDI+ 以消除锯齿 - 回复 gsjn_8888_6666 的问题
  3. asp.net 获取 当前日期时间 及 前后N天日期时间(DropDownList数据绑定)
  4. 不小心删表删库了,还能救
  5. 数学模型让咖啡更好喝
  6. bootstap-水果节案例-编辑中
  7. 微软认证学习资料大集合(软件+资料)
  8. OO生存指.....抱歉无法生存
  9. (Windows)获取系统显示的缩放比例方法
  10. vscode Java语法检查_vscode eslint js代码检查工具
  11. 台式计算机无线接入,台式计算机有线连接路由器WiFi方法图步骤,可以详细设置无线内容(...
  12. 登录案例的演示 涉及request的转发
  13. Linux系统(三)系统基础扫盲大全
  14. 【C/C++】教你区分libc、glibc、libgcc、libstdc++等名词
  15. 栖与谁邻解析:百度网盟操作要筛选哪种无效投放网站, 哪些网站要屏蔽
  16. SPSS数据分析流程经验总结
  17. 浏览器首页被劫持(解决)-桔梗网
  18. 【陈工笔记】# 微信小程序,初始平台搭建 #
  19. 人民币主动贬值:你的理财方式主动调整了吗?
  20. Abaqus液体中气液两相的气泡仿真

热门文章

  1. 针对一对多线束测试工装解决方案的研究——线束测试台
  2. zookeeper3.8.0 安装教程
  3. 多空转换(子母、母子)K线组合
  4. linux应用程序开发试卷,Linux系统管理与应用开发实验试卷
  5. SpringBoot读取资源文件
  6. ASCII码为160的空格,填坑
  7. 给自己的电脑时间进行精准校时
  8. GiD 前处理 实例
  9. 用完成端口开发大响应规模的Winsock应用程序(4)
  10. 音频转文字软件推荐:哪款工具让你的听写更加高效