2010-06-19 41 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