gpt4 book ai didi

c# - 标准化 URI 以仅提取域名的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-02 11:11:53 25 4
gpt4 key购买 nike

例如:

http://www.google.co.uk
www.google.co.uk
google.co.uk

将全部转换为:

google.co.uk

我本来想使用 System.Uri 类,但这似乎只接受带有方案的 url。

最佳答案

提取域名很容易

UriBuilder class标准化 URL 并处理许多边缘情况,例如缺少方案。这使得提取域名变得容易。例如,这些都会为您提供 www.google.co.uk:

new UriBuilder("www.google.co.uk").Host
new UriBuilder("http://www.google.co.uk").Host
new UriBuilder("ftp://www.google.co.uk:21/some/path").Host

...但是删除 www. 很难

这个问题看似简单,其实不然。您无法可靠地删除像 www 这样的子域,因为没有真正的区别。域 www.google.co.uk,包括 wwwco.uk 并没有什么特别之处,使得 google 成为域的一部分,而 www 不成为域的一部分 — 只是碰巧 co .uk 由注册商管理,google.co.uk 由 Google 管理。

为了让您了解这个问题,这里有一个 incomplete list of domain suffixes到目前为止,其中包括近 7100 个条目。值得注意的是,哪一部分甚至不一致:

URL                     the domain you want---------------------   -------------------http://www.crews.aero   crews.aerohttp://www.crew.aero    www.crew.aero

最好的方法是 what Google itself does for Chrome's omnibar :获取(incomplete) list of domain suffixes ,暂时缓存它,并将域名与域后缀列表进行比较。您可以亲自查看结果:在 Chrome 多功能栏中输入“crews.aero”,它将被视为 URL,或者输入“crew.aero”,它将被视为搜索。

关于c# - 标准化 URI 以仅提取域名的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11363493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com