2010-06-19 42 views
3

是否可以检测到java中使用的主机名(即使通过cname)?在java中检测主机名

我正在寻找类似于此: http://api.drupal.org/api/function/conf_path/6

在该代码中,Drupal的检查,看看有什么域名访问它以加载正确的配置(多点)。如果域名不符合任何配置,则只进入默认配置。

+0

你在运行一个servlet或者你有什么类型的连接? – 2010-06-19 22:48:57

回答

4

看看InetAddress.getLocalHost(),然后在返回的值上调用getHostName(),这正是这个。

请注意,并非所有机器都能够解析可用于本地主机名的网络接口,并且多宿主机器也会遇到一些额外的复杂问题。因此,如果您正在开发需要在各种情况下工作的软件,请正确考虑边缘情况以及快乐路径。

1

当然,这样做会导致每个getHostName()调用的反向DNS查找。
这是在繁忙的网站性能损失。
我建议做getHostAddress(),稍后再查找主机名。

+0

这个过程是在配置时完成的,当Web服务器启动时可能只是一次。我不明白做反向DNS查找的成本可能是一个问题。 – 2010-06-20 00:49:35