且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

从URL获取域,而不具有子域

更新时间:2023-02-26 10:41:48

我知道这是迟了几年,但如果有人绊倒这个问题,请尝试以下操作:

  InternetDomainName.from( subhost.example.co.uk)。topPrivateDomain()。name 

以上将返回示例.co.uk。


What is the proper way to get the domain from a URL without the subdomains?

In Java, from a string you can make a new URL(urlString) and call getHost() on the URL, but you have subdomains with it.

The problem is because there can be hosts like: subhost.example.com and subhost.example.co.uk

There are several other of these two part domains like co.uk (see the list on https://wiki.mozilla.org/TLD_List).

It seems to me the only correct way to get only the domain is to do a search through the TLD list, remove the TLD from the end of the host, and take away everything before the last period in the host. Is there an existing method that does this? I didn't see one in java.net.URL, and I checked apache commons a bit but couldn't find one there.

I know this is a few years late but if anyone stumbles across this question try the following:

InternetDomainName.from("subhost.example.co.uk").topPrivateDomain().name

The above will return example.co.uk.