2014-08-30 42 views
0

我正在嘗試刪除子網域,並僅保留擴展名後面的域名。如何刪除網址的子域部分

很難找到子域名,因爲我不知道URL中有多少點。例如,一些網址以.co.uk中的.com結尾。

我怎樣才能安全地刪除的子站點,使foo.bar.com成爲bar.com和foo.bar.co.uk成爲bar.co.uk

if(!rawUrl.startsWith("http://")&&!rawUrl.startsWith("https://")){ 
    rawUrl = "http://"+rawUrl; 
} 
String url = new java.net.URL(rawUrl).getHost(); 
String urlWithoutSub = ??? 
+0

是否有問題的網址總是會有子網域?如果是這種情況,您需要刪除第一次出現的「//」和「。」之間的所有內容。 – 2014-08-30 20:38:29

回答

2

你需要的是一個公開後綴列表,例如https://publicsuffix.org/中的可用列表。基本上,沒有算法可以告訴你哪些後綴是公開的,所以你需要一個列表。你最好使用一個公共的,維護良好的。

+0

谷歌的番石榴圖書館將此功能整齊地包裝在https://code.google.com/p/guava-libraries/wiki/中InternetDomainNameExplained – 2014-08-30 22:11:18