首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java InetAddress名称解析

Java InetAddress名称解析
EN

Stack Overflow用户
提问于 2017-06-09 15:36:27
回答 1查看 1.2K关注 0票数 0

对于所有Java专家,我有以下问题。

我正试图想出一种可靠的方法来创建一个localHost InetAddress对象,作为InetAddress.getLocalHost()的后盾。

我所面对的问题如下:

在某些情况下,我的UnknownHostException应用程序由于抛出一个而无法启动,以防它运行的机器的网络连接中断(部署在Windows机器上)。

因此,到目前为止,我的想法如下:

1)要么尝试从localHost枚举中获取InetAddress对象(我发现这有点麻烦)。

2)尝试通过系统环境获取本地主机名字符串,然后尝试通过执行InetAddress创建InetAddress.getByName()对象。

我强烈支持第二种方法,因为它更容易,而且看起来更时髦,但我仍然会遇到一些问题,以获得我想要的InetAddress对象,以防网络连接中断。

现在我的问题有两个:

1)考虑到我在所述机器中维护了一个主机文件,其中包含该机器的条目(主机名- IP地址),那么#2不可能按预期工作吗?我知道最终DNS解析将归结到实际操作系统上,但是Windows不应该使用它们的主机文件来完成这个任务,即使没有可用的网络连接。

2)是否有任何方法可以创建一个InetAddress对象,给定一个主机的主机名,但这台机器没有一个活动的网络连接接口被关闭(从而避免了前面提到的UnkownHostException )?

EN

回答 1

Stack Overflow用户

发布于 2017-06-09 15:48:52

( 1)它将按预期工作,但条件是:

  • 本地DNS解析器配置为在外部DNS服务器之前检查“主机”文件,以及
  • 该条目是正确的,它引用了本地主机的工作IP地址。

另一种方法是使用回送地址(例如"localhost“/ 127.0.0.1)

2)当然。使用[InetAddress.getByAddress(String, byte[])](https://docs.oracle.com/javase/7/docs/api/java/net/InetAddress.html#getByAddress(java.lang.String,%20byte[]%29).请注意,在DNS中没有选中该名称。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44461733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档