[英]Fully qualified machine name Java with /etc/hosts
我正在尝试用Java获取我的机器(Windows 7 x64)的完全限定名称。 在我的机器上,我更新了c:\\ Windows \\ system32 \\ drivers \\ etc \\ hosts文件,使其具有如下条目:
10.44.2.167 myserver myserver.domain.com
我们所有的系统在\\ etc \\ hosts文件中都有一个条目(以上格式),我无法更改。
以下代码始终返回“myserver”,我永远无法获得完全限定的名称。
InetAddress addr = InetAddress.getLocalHost();
String fqName = addr.getCanonicalHostName();
我如何用Java实现这一目标?
谢谢,
Shreyas
一个快速和肮脏的方式做到这 :
try {
InetAddress addr = InetAddress.getLocalHost();
// Get IP Address
byte[] ipAddr = addr.getAddress();
// Get hostname
String hostname = addr.getHostName();
} catch (UnknownHostException e) {
}
来自'man hosts'/ etc / hosts(或等效的windows)具有以下格式:
ip_address fully_qualified_name aliases
所以在你的情况下,hosts文件看起来像:
10.44.2.167 myserver.domain.com myserver another_alias
当Java执行主机查找时,如果/ etc / hosts有一个条目,它将获取第一个host_name(而不是别名)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.