这篇文章主要给大家介绍了关于IPV4和IPV6正则表达式的相关资料,文中介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
IPV4正则表达式
Ipv4地址分为ABCDE五大类,其中ABC类是普通ip地址,D类是组播地址,E类保留,作为研究之用。
范围分别为:
A: 1.0.0.1 ―一126.155.255.255
内网地址范围:10.0.0.0 一一10-255.255.255
B: 127.0.0.1 —191.255.255.255
内网地址范围:172.16.0.0——172.31.255.255
C: 192.0.0.1 —223.255.255.255
内网地址范围:192.168.0.0—一192.168.255.255
D: 224.0.0.1 —239.255.255.255
E: 240.0.0.1 —255.255.255.255
我们的正则要求ip必须是ABC类地址。每个字节的第一个数字可以为0,比如说01, 001。
1. ip的第一个字节分作以下几种情况:
1.长度为3且以2开头,范围为200-223
正则:22[0-3]丨2[0-1][0-9]
2.长度为3且以0或1开头
正则:[0-1][0-9][0-9]
3.长度为1或2
正则:([0-9])]{1,2}
所以第一个字节的表达式为:
(22[0-3]丨2[0-1][0-9]|
[0-1][0-9][0-9]|
0[1 -9][0-9]|
([0-9])]{1,2})
2. 后面三个字节范围为0-255,前面有一个点
分为以下几种情况:
1. 以2开头
正则:25[0-5]|2[0-4][0-9]
2. 以1和0开头的情况和第一个字节相同。
所以,单个字节的正则表达式:
([.]
(25[0-5]|2[0-4][0-9]|
[0-1][0-9][0-9]|
0[1 -9][0-9]|
([0-9])]{1,2}))
3. 加上点号和重复三次,以及开始和结尾匹配符,IPV4最终正则表达式变为:
((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})
点号之所以用中括号括起来是因为如果不扩起来是匹配任意字符。也可以用两个反斜杆转义。
加上行首和行尾匹配符:
(^((22[0-3]丨2[0-1][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|0[1 -9][0-9]|([0-9])]{1,2})){3})$)
IPV6正则表达式
IPV6介绍
IPV6的长度是128位,相比于ipv4的32位,极大的扩展了ip地址可用空间。ipv4地址现在被视为一种稀缺资源,而ipv6地址相当充足,在可以预见的未来是用不完的。有这样一段描述:如果地球表面(含陆地和水面)都覆盖着计算机,那么IPv6允许每平方米拥有7*10A23个IP地址;如果地址分配的速率是每微秒100万个,那么需要10A19年才能将所有的地址分配完毕。
IPv6地址表示
IPv6的128位地址通常写成8组,每组为四个十六进制数的形式。比如:
AD80:0000:0000:0000:ABAA:0000:00C2:0002