2010-07-08 157 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