首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从任意URL获取准确的域名

从任意URL获取准确的域名
EN

Stack Overflow用户
提问于 2011-05-13 04:55:56
回答 5查看 38.5K关注 0票数 24

我需要从任何网址提取准确的域名。

例如,

网址:http://www.google.com -->域名: google.com

网址:http://www.google.co.uk/path1/path2 -->域名: google.co.uk

这在c#中是如何实现的呢?是否有针对该任务的完整TLD列表或解析器?

EN

回答 5

Stack Overflow用户

发布于 2011-05-13 04:57:50

您可以使用Uri Class访问URI的所有组件:

代码语言:javascript
复制
var uri = new Uri("http://www.google.co.uk/path1/path2");

var host = uri.Host;

// host == "www.google.co.uk"

然而,没有内置的方法可以将子域"www“从"www.google.co.uk”中剥离。你需要实现你自己的逻辑,例如

代码语言:javascript
复制
var parts = host.ToLowerInvariant().Split('.');

if (parts.Length >= 3 &&
    parts[parts.Length - 1] == "uk" &&
    parts[parts.Length - 2] == "co")
{
    var result = parts[parts.Length - 3] + ".co.uk";

    // result == "google.co.uk"
}
票数 31
EN

Stack Overflow用户

发布于 2012-12-07 18:57:17

使用:

代码语言:javascript
复制
new Uri("http://www.stackoverflow.com/questions/5984361/c-sharp-getting-exact-domain-name-from-any-url?s=45faab89-43eb-41dc-aa5b-8a93f2eaeb74#new-answer").GetLeftPart(UriPartial.Authority).Replace("/www.", "/").Replace("http://", ""));

输入:

代码语言:javascript
复制
http://www.stackoverflow.com/questions/5984361/c-sharp-getting-exact-domain-name-from-any-url?s=45faab89-43eb-41dc-aa5b-8a93f2eaeb74#new-answer

输出:

代码语言:javascript
复制
stackoverflow.com

也适用于以下情况。

http://www.google.com→google.com

http://www.google.co.uk/path1/path2→google.co.uk

http://localhost.intranet:88/path1/path2→localhost.intranet:88

http://www2.google.com→www2.google.com

票数 16
EN

Stack Overflow用户

发布于 2011-05-13 04:57:53

尝试System.Uri类。

http://msdn.microsoft.com/en-us/library/system.uri.aspx

代码语言:javascript
复制
new Uri("http://www.google.co.uk/path1/path2").Host

它返回"www.google.co.uk“。然后就是字符串操作了。:/

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5984361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档