小编Cra*_*igF的帖子

是否有一个java api可以识别ipv6地址fd00 :: as local/private?

我正在寻找一个能够正确识别给定IP地址是私有还是本地的java api.此代码似乎适用于大多数ipv4/ipv6地址:

    boolean isLocalIp = InetAddress.getByName(ipAddr).isSiteLocalAddress() ||
                        InetAddress.getByName(ipAddr).isLinkLocalAddress() ||
                        InetAddress.getByName(ipAddr).isLoopbackAddress() ;
Run Code Online (Sandbox Code Playgroud)

特别地,它将"fec0 ::"标识为本地/私有类型地址,但是它不将例如"fc00 ::"或"fd00 ::"标识为本地/私有类型地址.

查看此维基百科链接https://en.wikipedia.org/wiki/Private_network#IPv6:

地址块fc00 ::/7由IANA保留用于唯一本地地址(ULA).[2] 它们是单播地址,但在路由前缀中包含一个40位随机数,以防止两个专用网络互连时发生冲突.尽管本质上是本地使用,但唯一本地地址的IPv6地址范围是全局的.

定义的第一个块是fd00 ::/8,专为/ 48路由块设计,用户可以根据需要创建多个子网.

任何人都可以帮助解释这里是否有一些错误的假设(例如,"fc00 ::"或"fd00 ::"应该被识别为本地/私有ipv6地址)或者是否有一些其他java api将正确识别所有本地/私人IP地址?

感谢您的任何反馈/答案!

java ipv4 ipv6

6
推荐指数
1
解决办法
138
查看次数

标签 统计

ipv4 ×1

ipv6 ×1

java ×1