从URL获取没有子域的域

Jam*_*ith 14 java subdomain dns

从没有子域的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公共但在那里找不到.

Dan*_*Dan 17

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

InternetDomainName.from("subhost.example.co.uk").topPrivateDomain().name
Run Code Online (Sandbox Code Playgroud)

以上将返回example.co.uk.

  • 请注意,此类位于Google Guava库中 (3认同)
  • 感谢您提供的有用信息!使用Selenium WebDriver在独立jar中包含这个库,因此能够引用它.请注意,".name"将不起作用,因为它是一个私有变量.http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/net/InternetDomainName.html (2认同)