gpt4 book ai didi

java - InetAddresses 的 isInetAddress 和 isUriInetAddress 的区别

转载 作者:行者123 更新时间:2023-11-29 03:19:07 24 4
gpt4 key购买 nike

Guava 的InetAddresses 实用类有两个方法:isInetAddress()isUriInetAddress()。 URI IP 和普通 IP 有什么区别?

我假设 InetAddresses 的方法对 IPv4 和 IPv6 同样有效?

最佳答案

isInetAddress 似乎只是检查 IPv4 或 IPv6 地址,即普通地址。

另一方面,

isUriInetAddress 尝试调用 forUriString 并在成功时返回 true

forUriString 的文档声明如下:

Returns an InetAddress representing the literal IPv4 or IPv6 host portion of a URL, encoded in the format specified by RFC 3986 section 3.2.2.

该部分说明如下:

  • IPv4:IPv4address,例如0.0.0.0
  • IPv6:["( IPv6address/IPvFuture ) "]"

因此,对于 IPv4,这两种方法似乎具有相同的结果,而对于 IPv6,isUriInetAddress 期望地址被方括号包围。

快速测试:

//IPv4 are treated the same way
isInetAddress("0.0.0.0") -> true
isUriInetAddress("0.0.0.0") -> true

isInetAddress("[0.0.0.0]") -> false
isUriInetAddress("[0.0.0.0]") -> false

//IPv6 are treated differently
isInetAddress("aaaa::bbbb:cccc:dddd:eeee") -> true
isUriInetAddress("aaaa::bbbb:cccc:dddd:eeee") -> false

isInetAddress("[aaaa::bbbb:cccc:dddd:eeee]") -> false
isUriInetAddress("[aaaa::bbbb:cccc:dddd:eeee]") -> true

关于java - InetAddresses 的 isInetAddress 和 isUriInetAddress 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24777199/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com