我希望从用户当前所在的网站名称获取域名扩展(至少我希望以这种方式调用)。
所以来自www.bbc.co.uk它是co.uk和 www.google.com = .com https://stackoverflow.com/questions/ask = .com
等
尤其是那些带有双重名字的人(比如co.uk)让我很头疼......
EDIT 据我所知,co.uk不是一个顶级域名?这让生活更轻松! 编辑 标题中的新名称(顶级域名)
答案 0 :(得分:3)
它被称为顶级域名(tld),但对于BBC来说只是“uk”,而不是“co.uk”。
你想要的不符合标准所以你需要一张表来检查'潜在'伪tld的
答案 1 :(得分:2)
.co.uk是.uk tld的.co子域名。这个问题在dns的实际结构方面没有意义。
答案 2 :(得分:2)
来自mozilla的PublicSuffix项目就是解决方案。它是TLD的维护列表。
您可以使用以下nuget包Nager.PublicSuffix。
PM> Install-Package Nager.PublicSuffix
示例强>
var domainParser = new DomainParser(new WebTldRuleProvider());
var domainName = domainParser.Get("sub.test.co.uk");
//domainName.Domain = "test";
//domainName.Hostname = "sub.test.co.uk";
//domainName.RegistrableDomain = "test.co.uk";
//domainName.SubDomain = "sub";
//domainName.TLD = "co.uk";
答案 3 :(得分:1)
答案 4 :(得分:0)
它被称为顶级域,然后是第一个子域,并非每个人都使用。这是因为第一个DNS确实反转拆分列表上的条目,以便更快地路由,因此它将被解析为
uk -> co -> example -> www