21xrx.com
2024-12-23 02:51:45 Monday
登录
文章检索 我的文章 写文章
IP地址验证
2020-09-01 09:00:16 深夜i     --     --
正则表达式 IP地址验证 IP地址

IP地址的验证方法。其中,包括简单IP地址、精确IP地址(这里的IP地址都是32位IP地址)

简单IP地址验证

简单IP地址组成规则为:(1-3位整数).(1-3位整数).(1-3位整数).(1-3位整数)。因此,要验证简单IP地址,首先需要验证1-3位整数。以下正则表达式都能够验证1~3位整数

[1-9]\d{0,2}
[1-9][0-9]{0,2}

综合上述的正则表达式,以下正则表达式都能够验证简单IP地址。

^([1-9]\d{0,2}\.){3}[1-9]\d{0,2}$
^([1-9][0-9]{0,2}\.){3}[1-9][0-9]{0,2}$

正则表达式的解释如下

^、$分别验证宇符串的开始和结束位置。

([1-9]\d{0,2}){3}中的[1-9]\d{0,2}验证1-3位整数,\.验证字符"."。

([1-9]\d{0,2}\.){3}表示3位整数和字符"."可以出现3次

精确IP地址验证

正则表达式^([1-9]\d{0,2}\.){3}[1-9]\d{0,2}$能够验证简单IP地址。同时,它也能够匹配形如666.777.888.999的IP地址。显然,这个IP地址是不合法的。在32位IP地址中,每个数值都应该是在0-255范围内。因此,在IP地址的编码规则(1-3位整数).(1-3位整数).(1-3位整数).(1-3位整数)中,每一个整数都应该在0-255范围内。在此,称该类型的IP地址的验证为精确IP地址验证,要验证精确IP地址,首先需要验证0-255范围内的整数。在此,把0-255范围划分以下4个范围

0-199
100-199
200-249
250-255

以下正则表达式都能够验证0-99范围内的整数

([1-9]\d?)|0
([1-9][0-9]?)|0

以下正则表达式都能够验证100-199范围内的整数。

1\d{2}
1[0-9]{2}

以下正则表达式都能够验证200-249范围内的整数

2[0-4]\d
2[0-4][0-9]

以下正则表达式能够验证250-255范围内的整数。

25[0-5]

综上所述,以下正则表达式能够验证0-255范围内的整数。

(25[0-5])|(2[0-4]\d)|(1\d{2})|(([1-9]\d?)|0)

如果把0-99和100-199合并为一个范围,即0-199。以下正则表达式能够验证0-199范围内的整数。

[01]?\d\d?

因此,以下正则表达式也能够验证0-255范围内的整数。

(25[0-5])|(2[0-4]\d)|([01]?\d\d?)

综合上述的正则表达式,以下正则表达式能够验证精确IP地址

^(((25[0-5])|(2[0-4]\d)|([01]?\d\d?))\.){3}((25[0-5])|(2[0-4]\d)|([01]?\d\d?))$

 

 

 

 

 

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复