【问题标题】:IP address to hostnameIP 地址到主机名
【发布时间】:2014-12-02 14:06:58
【问题描述】:

我正在尝试将 IP 地址转换为主机名。我尝试了here 给出的答案。虽然 linux 命令“host”适用于我拥有的所有 ip 地址,但此代码仅适用于其中一些。为什么会这样?

  InetAddress addr = InetAddress.getByName("192.168.190.62");
  String host = addr.getHostName();
  System.out.println(host);

【问题讨论】:

  • 你的代码在哪里?
  • 我刚刚添加了我正在使用的代码。我基本上是从stackoverflow上的另一个答案中得到的。
  • 代码是否有效取决于您的 DNS。
  • 我在公司网络上。我有没有办法/需要强制使用 DNS 服务器等?我很惊讶命令“主机”和它的工作方式不同,我原以为它们是相同的。
  • 我刚刚注意到您使用私有 IP。您是否想改为解析计算机主机名(那么这与 DNS 无关,抱歉造成混淆)。见this

标签: java ip host hostname


【解决方案1】:

查看http://download.java.net/jdk7/archive/b123/docs/api/index.html?java/net/InetAddress.html 时,您会发现...

获取主机名

获取此 IP 地址的主机名。

如果这个 InetAddress是用一个主机名创建的,这个主机名将被记住并返回;否则,将执行反向名称查找并返回结果基于系统配置的名称查找服务如果需要查找名称服务,请致电getCanonicalHostName()

【讨论】:

  • 我尝试使用它,得到了相同的结果。至少,有些 IP 地址 getHostName() 或 getCanonicalHostName() 都无法返回有效值,但“host”可以。
  • 如文档中所述,它说结果将返回基于系统配置名称查找服务也许您可以编辑此配置(hosts.txt)?跨度>
猜你喜欢
  • 2014-12-19
  • 2011-03-23
  • 2021-01-18
  • 2012-05-31
  • 2013-03-25
  • 1970-01-01
  • 2014-04-12
  • 2014-11-12
相关资源
最近更新 更多