2010-07-08 91 views
12

從沒有子域名的域名獲取域名的正確方法是什麼?從網址獲取沒有子域名的域名

在Java中,從一個字符串中你可以創建一個新的URL(urlString)並在URL上調用getHost(),但是你有子域名。

的問題是,因爲可以有像主機: subhost.example.com 和 subhost.example.co.uk

有幾個其他類似co.uk這兩個部分域(見在https://wiki.mozilla.org/TLD_List上列出)。

在我看來,唯一正確的方法是隻通過TLD列表進行搜索,從主機末端刪除頂級域名,並在主機的最後一段時間之前取走所有內容。有沒有這樣的現有方法?我沒有在java.net.URL中看到一個,我檢查了一下apache的commons,但是找不到那個。

+0

您可以找到相關信息:http://stackoverflow.com/questions/3199343/regex-to-match-domain-cctld – 2010-07-08 00:40:19

回答

12

我知道這是一個幾年晚,但如果任何人碰到這個問題絆倒嘗試以下操作:

InternetDomainName.from("subhost.example.co.uk").topPrivateDomain().name 

以上將example.co.uk返回。

+3

注意,這個類是在谷歌番石榴庫 – nerdherd 2014-09-08 03:44:45

+2

謝謝你的好消息!使用Selenium WebDriver在獨立的jar包中包含這個庫,因此能夠引用它。請注意,「.name」將不起作用,因爲它是一個私有變量。 http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/net/InternetDomainName.html – Lukus 2014-11-20 17:08:34

+0

@Lukus這是正確的。我在groovy寫這篇文章。 – Dan 2015-05-28 17:26:50