我正在查看publicsuffix
Go 中的库,发现它在从字符串中提取域方面非常有用。这就是我所拥有的:
package main
import (
"fmt"
"golang.org/x/net/publicsuffix"
)
func main() {
url := "a.very.complex-domain.co.uk"
u, _ := publicsuffix.EffectiveTLDPlusOne(url)
fmt.Printf(u)
}
complex-domain.co.uk
作为有效域,这可以很好地发挥作用。但是,我面临的问题是,当任何随机字符串传递给函数(包含一个点)时,库无论如何都会给出一个有效的域名(即使公共后缀列表中不存在 TLD)。
package main
import (
"fmt"
"golang.org/x/net/publicsuffix"
)
func main() {
url := "a.very.complex-domain.someinvalidtld"
u, _ := publicsuffix.EffectiveTLDPlusOne(url)
fmt.Printf(u)
}
给出:complex-domain.someinvalidtld
我的理解是该publicsuffix
包假定它是一个本地域并无论如何都会对其进行解析。有没有办法避免这种行为并只提取有效的行为?