获取URL的第二级域(java)

我想知道java中是否有解析器或库可用于提取URL中的第二级域(SLD)-或无法通过算法或正则表达式来执行此操作。例如:

URI uri = new URI("http://www.mydomain.ltd.uk/blah/some/page.html");

String host = uri.getHost();

System.out.println(host);

打印:

mydomain.ltd.uk

现在,我想做的就是可靠地识别SLD(“ ltd.uk”)组件。有任何想法吗?

我理想上正在寻找一个通用的解决方案,所以我会匹配“ police.uk”中的“ .uk”,“ bbc.co.uk”中的“ .co.uk”和“

amazon”中的“ .com” .com”。

谢谢

回答:

不知道您的目的,但二级域名对您可能没有多大意义。您可能需要找到公共后缀,而其下面的域正是您要寻找的。

Apache Http Component(HttpClient 4)附带了用于处理此问题的类,

org.apache.http.impl.cookie.PublicSuffixFilter

org.apache.http.impl.cookie.PublicSuffixListParser

您需要从此处下载公共后缀列表,

http://mxr.mozilla.org/mozilla-

central/source/netwerk/dns/effective_tld_names.dat?raw=1

以上是 获取URL的第二级域(java) 的全部内容, 来源链接: utcz.com/qa/417757.html

回到顶部