使用以下代码
InetAddress.getLocalHost().getHostAddress();
Run Code Online (Sandbox Code Playgroud)
可以获取主机地址.但JVM如何找到它呢?
Java API仅告诉您它返回它(API参考),但是是否涉及DNS服务器,如果是,则何时调用它?
如果只调用一次如何在本地保存服务器名称?
实际的实现是使用JNI在本机代码中完成的,因此它在平台之间会有所不同.
也就是说,没有理由需要使用DNS来查找网卡所在机器上的IP地址.人们可以从网卡上读取ip信息.
坏消息:没有办法确定这是否会在Java运行的任何平台上进行DNS查找,因为它是本机代码,并且即使实际上没有必要,机器也可以进行DNS查找存在.
好消息:在我的linux机器上,它没有进行DNS查找(通过wireshark确认),这正是我所期望的.如果您认为它正在进行查找,那么可能有多种原因可以进行查找(取决于您的本机绑定客户端的可配置性),如果您安装wireshark(或使用合适的网络分析器),您可以快速找到如果你自己抬头
编辑:请注意,名称查找将位于.getLocalHost()链接调用的部分中,如果要查找的话.
| 归档时间: |
|
| 查看次数: |
6044 次 |
| 最近记录: |