如果主机名是“localhost”,创建HostAndPort实例的最简单方法是什么?

时间:2012-02-06 10:23:57

标签: java guava

我想使用guava中的类HostAndPort来存储主机和端口。如果主机是“localhost”而不是“127.0.0.1”,那么创建有效HostAndPort - 实例的最简单方法是什么?

在创建HostAndPort - 实例之前,它尝试HostSpecifier.isValid(String)验证主机,但它为“localhost”返回false。所以在我的情况下我不能使用HostSpecifier,除了我将“localhost”转换为“127.0.0.1”。 是否有其他方法可以在没有DNS查找的情况下验证主机名?

1 个答案:

答案 0 :(得分:2)

java.net.InetAddress.getByName(String hostname)就是那个。 http://docs.oracle.com/javase/6/docs/api/java/net/InetAddress.html

本地地址查找是通过Windows上的lmhosts(如果启用)和使用名称服务开关配置(/etc/nsswitch.conf)在linux / unix上完成的,以便检查首先查找的位置 - files,dns,nis ....等等(man nsswitch.conf)。 java api调用将根据系统配置解决它。

编辑:

你可能也想看一下这个库 http://www.xbill.org/dnsjava/


希望这有助于升技。