我正在从 URL 字符串中检索域,但我想知道获取它并避免在“example.co.uk”URL 中获取“co”的最佳选择是什么。
有人知道算法或 .NET 框架方法吗?
我一直在寻找它,答案是与所有 TLD 的列表相匹配,目前这个列表正在快速增长。
编辑:
我已经尝试过 Uri 类,但还没有找到我要找的东西。
我尝试检索字符串的第一个子域,例如“website.example.co.uk”,即“example.co.uk”。
从 URI 中获取主机名后,很容易检查它是否以“.co.uk”结尾,如果是,则提取最后 3 个组件;否则提取最后两个组件。听起来这会完成您的要求;你真的想要更一般的东西吗?
你的问题今天没有解决办法,每个人都有同样的痛苦。
有一个 IETF 工作组 (DBOUND) 计划为这个问题寻找解决方案,他们提出了各种各样的建议,但没有任何东西可以作为标准存在,并且该小组关闭了。如果您有兴趣:https ://datatracker.ietf.org/wg/dbound/about/
现在唯一的帮助是使用https://publicsuffix.org/上的“公共后缀列表” :确保阅读所有解释并理解这是一个手动策划的列表,因此不会实时更新和错误可以发生。
因为.uk
您会在那里找到注册管理机构处理的当前 TLD 列表:
// uk : https://en.wikipedia.org/wiki/.uk
// Submitted by registry <Michael.Daly@nominet.org.uk>
uk
ac.uk
co.uk
gov.uk
ltd.uk
me.uk
net.uk
nhs.uk
org.uk
plc.uk
police.uk
*.sch.uk