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

Ben*_*ier 3 java ip dns host

使用以下代码

InetAddress.getLocalHost().getHostAddress();
Run Code Online (Sandbox Code Playgroud)

可以获取主机地址.但JVM如何找到它呢?

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

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

Edw*_*uck 6

实际的实现是使用JNI在本机代码中完成的,因此它在平台之间会有所不同.

也就是说,没有理由需要使用DNS来查找网卡所在机器上的IP地址.人们可以从网卡上读取ip信息.

坏消息:没有办法确定这是否会在Java运行的任何平台上进行DNS查找,因为它是本机代码,并且即使实际上没有必要,机器也可以进行DNS查找存在.

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

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