gpt4 book ai didi

java - InetAddress.getLocalHost().getHostAddress();涉及 DNS 服务器?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:54:20 30 4
gpt4 key购买 nike

用下面的代码

InetAddress.getLocalHost().getHostAddress();

可以获取主机地址。但是 JVM 是如何发现它的呢?

Java API 只告诉您它返回它 ( API Reference ),但是否涉及 DNS 服务器,如果是,何时调用?

如果只调用一次,服务器名称如何保存在本地?

最佳答案

实际的实现是使用 JNI 在 native 代码中完成的,因此它会因平台而异。

也就是说,没有理由需要执行 DNS 来查找网卡所在机器上的 IP 地址。直接读取网卡的ip信息即可。

坏消息:无法确定这是否会在 Java 运行的任何平台上执行 DNS 查找,因为它是 native 代码,并且机器执行 DNS 查找的可能性即使它是实际上没有必要存在。

好消息:在我的 linux 机器上,它不执行 DNS 查找(通过 wireshark 确认),这正是我所期望的。如果您认为它在进行查找,那么它进行查找的原因有很多(取决于您的 native 绑定(bind)客户端的可配置性),如果您安装了 wireshark(或使用合适的网络分析器),您可以快速找到如果你正在查找自己。

编辑:请注意,名称查找将位于链式调用的 .getLocalHost() 部分,如果要查找的话。

关于java - InetAddress.getLocalHost().getHostAddress();涉及 DNS 服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7388847/

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