gpt4 book ai didi

java - InetAddress.getByName ("127.0.0.1.")在 Linux 中抛出错误,但在 Windows 中则不会

转载 作者:太空宇宙 更新时间:2023-11-04 06:51:40 25 4
gpt4 key购买 nike

当我调用 InetAddress.getByname("127.0.0.1.") 时,由于最后有多余的点,我期待 UnknownHostException 。

但它在 Windows 中没有发生,而在 Linux 中它会按预期抛出错误。

最佳答案

这是一个棘手的问题。我还没有答案,但这是我发现的。

更新 - 我误读了代码。根据您的评论,涉及一个 native 方法,这意味着平台特定的代码。

我查看了 OpenJDK 8 代码并查看了 native 方法实现:

jdk8u/jdk/src/{windows,solaris}/native/java/net/Inet4AddressImpl.c

这两个版本的代码非常不同,但在这两种情况下,都会尝试使用主机 C 库来解析格式错误的 IP 地址。行为差异大概在于 C 库。但是您可以通过查看 OpenJDK 代码库的相关版本来亲自检查这一切。

<小时/>

无论哪种方式,简单的解决方案可能就是修复错误的 IP 地址。 (我想,您可以实现自己的 Java 端 DNS 服务提供程序,在进行 DNS 查找之前专门检查格式错误的 IP 地址,但这可能不值得。)

关于java - InetAddress.getByName ("127.0.0.1.")在 Linux 中抛出错误,但在 Windows 中则不会,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23237477/

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