0

我使用 java API 根据给定的 URL 提取第二个域名。

https://github.com/whois-server-list/public-suffix-list

它基于PUBLIC SUFFIX LISTMozilla的。

给定以下代码:

PublicSuffixListFactory factory = new PublicSuffixListFactory();
    PublicSuffixList suffixList = factory.build();
    String[] domainArray = new String[10];
    domainArray[0] = "swcdn.apple.com";
    domainArray[1] = "production-pdt.siriusxm.com";
    domainArray[2] = "audio2.spotify.com";
    domainArray[3] = "a1935.phobos.apple.com";
    domainArray[4] = "r13---sn-ab5l6n7r.c.pack.google.com";
    domainArray[5] = "a132.phobos.apple.com";
    domainArray[6] = "a1736.phobos.apple.com";
    domainArray[7] = "r17---sn-vgqs7n7l.c.android.clients.google.com";
    domainArray[8] = "s4.amazonaws.com";
    domainArray[9] = "s3.amazonaws.com";

    for(String string : domainArray){
        String domain = suffixList.getRegistrableDomain(string);
        System.out.println(domain);
    }

我得到以下输出:

apple.com
siriusxm.com
spotify.com
apple.com
google.com
apple.com
apple.com
google.com
amazonaws.com
null

它适用于大多数域,但对于s3.amazonaws.com,它返回 null。但是对于类似的:s4.amazonaws.com,它给出了正确的结果。有什么问题?

4

1 回答 1

2

s3.amazonaws.com包含在公共后缀列表中,因此被视为不可注册。在这种情况下PublicSuffixList.getRegistrableDomain()返回:null

返回:可注册的域,如果该域根本不可注册,则返回 null

于 2014-11-14T18:32:54.997 回答