概述
问题
以下哪项是获取Java当前计算机主机名的最佳和最便携的方法?
Runtime.getRuntime().exec("hostname")
VS
InetAddress.getLocalHost().getHostName()
#1 热门回答(289 赞)
严格来说 - 你别无选择,只能在Unixgethostname(2)上调用hostname(1)或者。这是你的计算机的名称。任何通过IP地址确定主机名的尝试都是这样的
InetAddress.getLocalHost().getHostName()
在某些情况下必然会失败:
IP地址可能无法解析为任何名称。错误的DNS设置,糟糕的系统设置或错误的提供商设置可能是这个原因。
DNS中的名称可以有许多名为CNAME的别名。这些只能在一个方向上正确解决:名称到地址。反方向是模棱两可的。哪一个是"官方"名称?
主机可以有许多不同的IP地址 - 每个地址可以有许多不同的名称。两种常见情况是:一个以太网端口有几个"逻辑"IP地址,或者计算机有几个以太网端口。它是可配置的,无论它们共享IP还是具有不同的IP。这被称为"多宿主"。
DNS中的一个名称可以解析为多个IP地址。并非所有这些地址都必须位于同一台计算机上! (用例:一种简单的负载均衡形式)
我们甚至不开始讨论动态IP地址。
另外,请勿将IP地址的名称与主机名(主机名)混淆。一个比喻可能会让它更清晰:
有一个叫做"伦敦"的大城市(服务器)。在城墙里面发生了很多事情。这个城市有几个门(IP地址)。每个门都有一个名称("北门","河门"
最后
以上就是怕孤单斑马为你收集整理的java 获取主机名_建议在Java中获取主机名的方法的全部内容,希望文章能够帮你解决java 获取主机名_建议在Java中获取主机名的方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复