如果主机名"localhost",创建主机和端口实例的最简单方法是什么?



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

在我创建一个HostAndPort-Instance之前,它尝试了HostSpecifier.isValid(String)来验证主机,但它为"localhost"返回了false。因此,在我的情况下,我不能使用HostSpecifier,除非我将"localhost"转换为"127.0.0.1"。有没有其他方法可以在不进行DNS查找的情况下验证主机名?

java.net.InetAddress.getByName(String hostname)就是其中之一。http://docs.oracle.com/javase/6/docs/api/java/net/InetAddress.html

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

编辑:

你可能也想看看这个图书馆http://www.xbill.org/dnsjava/


希望这对abit有所帮助。

最新更新