我正在解析一些 url,需要从主机中提取子域。最简单的方法是使用“url.Parse()”获取主机,然后在“.”上拆分主机。如果有 3 个部分,则子域是第一部分。这将适用于美国 TLD,但是否有更好的方法来提取适用于所有 TLD 的子域?例如:

url = "www.google.com" // "www"
url2 = "google.com" // ""
url3 = "www.google.co.uk"  // "www.google"
url4 = "google.co.uk"  // "google"
parts, err := url.Parse(url)

谢谢!

最佳答案

使用 PublicSuffix :

suffix, _ := publicsuffix.PublicSuffix(host)
sub := host[:len(host) - len(suffix) - 1]

关于go - 获取子域,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26517636/

10-17 01:30