以下哪项是用 Java 获取当前计算机主机名的最佳和最便携的方法?
Runtime.getRuntime().exec("hostname")
对比
InetAddress.getLocalHost().getHostName()
原文由 Mahendra 发布,翻译遵循 CC BY-SA 4.0 许可协议
以下哪项是用 Java 获取当前计算机主机名的最佳和最便携的方法?
Runtime.getRuntime().exec("hostname")
对比
InetAddress.getLocalHost().getHostName()
原文由 Mahendra 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
严格来说 - 你别无选择,只能调用
hostname(1)
或 - 在 Unix 上gethostname(2)
。这是您的计算机的名称。任何通过这样的 IP 地址确定主机名的尝试在某些情况下必然会失败:
也不要将 IP 地址的名称与主机名 (hostname) 混淆。一个比喻可能更清楚:
我认为这很好地说明了这一点。
好消息是: 通常 不需要 真正的 主机名。在大多数情况下,在该主机上解析为 IP 地址的任何名称都可以。 (陌生人可能会从 Northgate 进入城市,但乐于助人的当地人会翻译“左二”部分。)
在其余极端情况下,您必须使用此配置设置的 最终 来源 - 即 C 函数
gethostname(2)
。该函数也被程序调用hostname
。