2009-09-04 51 views
1

我發現自己需要一個Java實用程序來獲取完全限定的主機名,並從中生成domain namejava的域名解釋實用程序

在簡單情況下,這意味着轉彎host.company.comcompany.com,但是這迅速變得更復雜與host.subdomain.company.com,例如,或host.company.co.uk,其中「域名」的含義變得有點模糊。拋出SLDccSLD的定義併發症,並且它變得混亂。

所以我的問題是,是否有第三方庫在那裏理解這些事情,並可以給我合理的解釋。

回答

3

Mozilla的定期維護,它使用其瀏覽器的格式cookie安全性,可以被別人解析和使用的規則:

http://publicsuffix.org/

搜索谷歌,也有可以解析大概Java庫清單,但我不知道其中的任何一個的質量。

+0

我認爲這是我將要得到的最接近的。感謝那。 – skaffman 2009-09-06 08:04:51

+0

請注意,這個列表是非官方的,不完整的(eu.org缺失等),而不是最新的(因爲規則總是改變)。 – bortzmeyer 2009-09-07 07:54:01

3

我不認爲存在這樣的事情,因爲這是一個行政而非技術問題,而且是一個非常多邊的問題。

如果您最終將自己推出,那麼Mozilla wiki上的this page看起來是一個很好的起點,並且有很多參考。雖然看起來很頭痛。只要看看rules for Japan。哎喲。

+0

餅乾就成了一個技術問題。 (看看那張表,我認爲有10個特殊的二級域名,而不是8個。) – 2009-09-04 15:58:18

1

不確定它是否出於同樣的目的,我在我的代碼中做了類似的事情。當我設置cookie時,我想將域設置爲儘可能靠近頂部,因此我需要找到比公共後綴低一級的域。例如,您可以爲host.div.example.com設置Cookie的最高域爲.example.com。對於host.div.example.co.jp.example.co.jp

不幸的是,該代碼不在公有領域。這很容易做到。我基本上是用以下2類Apache的HttpClient的4,

org.apache.http.impl.cookie.PublicSuffixFilter 
org.apache.http.impl.cookie.PublicSuffixListParser 

我忘了確切的原因,但我們不得不做出一些非常小的調整。您只需從上到下走域名,第一個有效的Cookie域就是您所需要的。

你需要從這裏下載公開後綴列表並將其包含在你的JAR,

http://mxr.mozilla.org/mozilla-central/source/netwerk/dns/src/effective_tld_names.dat?raw=1