IPv6地址的正则表达式验证

时间:2013-11-06 14:32:49

标签: php regex

我正在尝试编写用于验证IPv6地址,IPv4地址和主机名的正则表达式。

我的正则表达式为:^[a-zA-Z0-9./_:-]{0,128}$

它正在验证除ipv6地址之外的所有内容,如下所示:

2001:1000:1000:1000:20c:29ff:feee:a40e/64

如果我删除/ 64,它可以工作,但是/ 64它不起作用,需要帮助,因为我是正则表达式的新手。

3 个答案:

答案 0 :(得分:1)

首先,我会从魔术事实开始,你的正则表达式适用于

2001:1000:1000:1000:20c:29ff:feee:a40e/64sfddsdsfsdfsrftghyujikafjidsfhisuhfiashufiuashfuahfahffhssiauhfishaiuhsfiuahsfuhaufafas

同样 - 根据你的正则表达式它是一个有效的ipV6:)

Here 您会找到更合适的ip验证正则表达以及有关验证此类数据的其他有用提示。

答案 1 :(得分:0)

我的正则表达式生锈了,但您需要在$之前添加“/ 64”模式和其他此类子网模式。

答案 2 :(得分:0)

你只是错过了反斜杠:

^[a-zA-Z0-9.\/_:-]{0,128}$

但老实说,这是验证0到128个字符之间的任何字符串,而不仅仅是IPv6地址。

在这里寻找解决方案:Regular expression that matches valid IPv6 addresses