IPV6验证问题

时间:2013-11-24 12:53:35

标签: java javascript validation ipv6

我正在研究服务器(java)和客户端(javascript)方面的IPV6验证,并且我对以下IP存在不兼容性问题:

  1. 02001:0000:1234:0000:0000:C1C0:ABCD:0876
  2. 2001:0000:1234:0000:00001:C1C0:ABCD:0876
  3. 他们都有一个额外的零,看起来对我来说无效。

    我的javascript验证(基于http://www.intermapper.com/support/tools/IPV6-Validator.aspx)返回无效,但我的服务器端认为它是有效的IP。

    在服务器端,我正在检查2个选项:
    1. java.net.InetAddress.getByName(“”);
    2. com.google.common.net.InetAddresses.isInetAddress(“”);

    你能告诉我吗?

    谢谢!

1 个答案:

答案 0 :(得分:2)

RFC 4291描述了IPv6地址的文本表示。

它指定每个字段是“一到四个十六进制数字”(第2.2节)。这符合IPv6地址是128位二进制值(RFC 3587)的事实;因此任何额外的数字都会导致该值超过128位,因此无效..

无论你使用什么工具说这些地址都有效,它就会被破坏。