IPV6地址格式正则表达式

作者: 李大龙1997 | 来源:发表于2019-06-12 12:33 被阅读28次

工作需要需要用正则表达式方式获取ipv6地址,找了很网页发现都不全面,因为ipv6地址不仅仅包含“:”、而且包含“::”和掩码"/xxx"。

1、IPv6首选格式

将IPv6中的128位,也就是共32个字符完完整整,一个不漏地全写出来,比如下面就是一些IPv6地址的首选格式表示形式:

0000:0000:0000:0000:0000:0000:0000:0000

0000:0000:0000:0000:0000:0000:0000:0001

2001:0410:0000:1234:FB00:1400:5000:45FF

3ffe:0000:0000:0000:1010:2a2a:0000:0001

FE80:0000:0000:0000:0000:0000:0000:0009

FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF

2、IPV6 压缩格式

从前面一个IPv6地址表示方法首选格式表示方法中可以看出,一个完整的IPv6地址中,会经常性的出现许多个0,而我们知道,许多时候,0是毫无意义的,0表示没有,写出来,也表示没有,不写,也同样表示没有,那么我们就考虑能否将不影响地址结果的0给省略不写,这样就可以大大节省时间,也方便人们阅读和书写,这样的将地址省略0的表示方法,称为压缩格式。

经过测试以下正则表达式能完美匹配IPV6地址。

 下面来看一些整个段4个字符都为0的IPv6地址使用压缩格式来表示:

例1

压缩前:

0000:0000:0000:0000:0000:0000:0000:0000 

压缩后:

::

说明:可以看出,由于这个地址的8个段全部都为0,所以只用::就将整个地址表示出来,当计算机拿到这个压缩后的地址时,发现比正常的128位少了128位,那么就会在::的地方补上128个0,结果为:

0000:0000:0000:0000:0000:0000:0000:0000 

可以看出,计算机还原的地址就是压缩之前的真实地址。

 

例2

压缩前:

0000:0000:0000:0000:0000:0000:0000:0001

压缩后:

::0001

说明:可以看出,压缩后的地址比正常的128位少了112位,计算机就会在::的地方补上112个0,结果为:

0000:0000:0000:0000:0000:0000:0000:0001

可以看出,计算机还原的地址就是压缩之前的真实地址。

 

例3

压缩前:

2001:0410:0000: 0000:FB00:1400:5000:45FF

压缩后:

2001:0410 ::FB00:1400:5000:45FF

说明:可以看出,压缩后的地址比正常的128位少了32位,计算机就会在::的地方补上32个0,结果为:

2001:0410:0000: 0000:FB00:1400:5000:45FF


3、ipv6地址日常使用需要带掩码信息

目的是显示网络地址位。

4.正则表达式

(([a-f0-9]{1,4}:|){0,7}[::]{0,1}[a-f0-9]{1,4})/\d{1,3}

能够识别标准的ipv6地址,因工作中基本上都是2409:8054:48::1019/128这种地址,::1这种地址工作上用不上也不用识别。大家有没有好一点的建议。

相关文章

  • 适配IPv6二:IPV6/IPV4概述

    一、IPV6 IPv6地址格式 IPv6的地址长度是128位(bit)。 将这128位的地址按每16位划分为一个段...

  • IPV6地址格式正则表达式

    工作需要需要用正则表达式方式获取ipv6地址,找了很网页发现都不全面,因为ipv6地址不仅仅包含“:”、而且包含“...

  • Java/Spring使用IPv6地址连接到MySQL服务器

    地址格式 IPv6 地址有两个逻辑部分:64 位网络前缀和 64 位主机地址部分。(主机地址通常是从接口 MAC ...

  • IPv6地址格式

    IPv6的地址格式 IPv4地址是类似 A.B.C.D 的格式,它是32位,用"."分成四段,用10进制表示 IP...

  • 网络知识之IPV6(一)

    IPv6的地址格式 IPv4地址是类似 A.B.C.D 的格式,它是32位,用"."分成四段,用10进制表示 IP...

  • ping

    Centos 下ping ipv6 地址: windows下 ping ipv6 地址:

  • Contiki相关协议的研究

    IPv6 寻址方式和 IPv4 中的点分十进制格式不同,IPv6 的 128 位地址以 16 位为一组,每个 16...

  • IPv6地址格式

    1.说明 IPv6是互联网协议的第六版,现有IPv4只支持大概40亿个网络地址,而IPv6支持3.4e38个网络地...

  • Socket编程框架

    1. Socket地址数据类型及相关函数 IPv4和IPv6的地址格式定义在netinet/in.h中 IPv4地...

  • 计算机网络 | 零碎小知识

    忙里偷闲,总结计算机网络中的小知识; 一、IP地址 IP地址划分 局域网地址 二、IPv6的表示方法 首选格式32...

网友评论

    本文标题:IPV6地址格式正则表达式

    本文链接:https://www.haomeiwen.com/subject/wkgkfctx.html