IPV6验证问题

IPV6 validation issue

本文关键字:问题 验证 IPV6      更新时间:2023-09-26

我正在进行服务器(java)和客户端(javascript)端的IPV6验证,并且我与以下IP存在不兼容问题:

  1. 02001:0000:1234:0000:0000:C1C0:ABCD:0876
  2. 2001:0000:1234:0000:00001:C1C0:ABCD:0876

它们都有一个额外的零,在我看来无效。

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

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

你能给我建议吗?

谢谢!

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

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

无论你使用什么工具说这些地址是有效的,它都是坏的。