获得顶级域名的简便方法?

时间:2010-06-03 19:33:27

标签: c# asp.net

我希望从用户当前所在的网站名称获取域名扩展(至少我希望以这种方式调用)。

所以来自www.bbc.co.uk它是co.uk和 www.google.com = .com https://stackoverflow.com/questions/ask = .com

尤其是那些带有双重名字的人(比如co.uk)让我很头疼......

EDIT 据我所知,co.uk不是一个顶级域名?这让生活更轻松! 编辑 标题中的新名称(顶级域名)

5 个答案:

答案 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)

看到这个问题

Regular expression to retrieve domain.tld

.NET URI类当然也可以检索主机名。

答案 4 :(得分:0)

它被称为顶级域,然后是第一个子域,并非每个人都使用。这是因为第一个DNS确实反转拆分列表上的条目,以便更快地路由,因此它将被解析为

uk -> co -> example -> www