小编典典
在我看来,InternetDomainName.topPrivateDomain()确实
可以满足
您的需求。Guava维护一个公共后缀列表(基于Mozilla在publicsuffix.org上的列表),该列表用于确定主机的公共后缀部分是什么…顶级私有域是公共后缀及其第一个孩子。
这是一个简单的例子:
public class Test {
public static void main(String[] args) throws URISyntaxException {
ImmutableList urls = ImmutableList.of(
"http://example.google.com", "http://google.com",
"http://bing.bing.bing.com", "http://www.amazon.co.jp/");
for (String url : urls) {
System.out.println(url + " -> " + getTopPrivateDomain(url));
}
}
private static String getTopPrivateDomain(String url) throws URISyntaxException {
String host = new URI(url).getHost();
InternetDomainName domainName = InternetDomainName.from(host);
return domainName.topPrivateDomain().name();
}
}
运行此代码将打印:
http://example.google.com-> google.com
http://google.com-> google.com
http://bing.bing.bing.com-> bing.com
http://www.amazon.co.jp/-> amazon.co.jp
2020-11-01