ram*_*van 5 java domain-name tld guava
我需要提取网址的顶级域名,我得到了他的 http://publicsuffix.org/index.html
并且java实现在http://guava-libraries.googlecode.com,我找不到任何提取域名的例子
say example..
example.google.com
returns google.com
and bing.bing.bing.com
returns bing.com
Run Code Online (Sandbox Code Playgroud)
任何人都可以告诉我如何使用这个库实现一个例子....
Col*_*inD 17
这在我看来就像InternetDomainName.topPrivateDomain()不正是你想要的.Guava维护一个公共后缀列表(基于mozilla在publicsuffix.org上的列表),用于确定主机的公共后缀部分是什么......顶级私有域是公共后缀加上它的第一个孩子.
这是一个简单的例子:
public class Test {
public static void main(String[] args) throws URISyntaxException {
ImmutableList<String> 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();
}
}
Run Code Online (Sandbox Code Playgroud)
运行此代码打印:
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