从URL获取没有子域的域

从没有子域的URL获取域的正确方法是什么?

在Java中,您可以从字符串中创建新URL(urlString)并在URL上调用getHost(),但是您有子域。

问题是因为可能存在以下主机:subhost.example.com和subhost.example.co.uk

这两个部分领域还有其他几个领域,如co.uk(请参阅https://wiki.mozilla.org/TLD_List上的列表)。

在我看来,只获得域名的唯一正确方法是搜索TLD列表,从主机末尾删除TLD,并在主机的最后一段时间之前取走所有内容。 是否有现成的方法可以做到这一点? 我没有在java.net.URL中看到一个,我检查了一些apache公共但在那里找不到。

我知道这已经晚了几年但如果有人偶然发现这个问题,请尝试以下方法:

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

以上将返回example.co.uk。