如何从域名获取网站名称?

时间:2014-01-20 11:11:06

标签: c# uri

我从URL中获取域名,如下所示:

var uri = new Uri("Http://www.google.com");
var host = uri.Host;
//host ="www.google.com"

但我只想在主持人中使用google.com,

host = "google.com"

2 个答案:

答案 0 :(得分:3)

鉴于接受的答案,我想问题是不知道如何操纵字符串而不是如何处理uris ......但是对于那些最终在这里的人来说:

Uri类没有此属性,因此您必须自己解析它。

据推测,您之前不知道子域是什么,因此可能无法进行简单的替换。

这不是微不足道的,因为TLD变化多端(http://en.wikipedia.org/wiki/List_of_Internet_top-level_domains),并且网址可能有多个部分(例如http://pre.subdomain.domain.co.uk)。

您必须确切地确定您想要获得的内容以及您希望解决方案的复杂程度。

简单 - 做一个字符串替换,请参阅ekad的回答

中 - 大部分时间有效的正则表达式,请参阅Strip protocol and subdomain from a URL

或复杂 - 引用后缀列表以确定什么是子域以及什么是域,例如 Get the subdomain from a URL

答案 1 :(得分:2)

如果host"www."开头,您可以使用String.Replace Method替换"www."为空字符串,如下所示:

var uri = new Uri("Http://www.google.com");
var host = uri.Host.ToLower();
if (host.StartsWith("www."))
{
    host = host.Replace("www.", "");
}