从网址,以获取主机域名?(Get host domain from URL?)

2019-07-17 23:10发布

如何从一个字符串URL主机域名?

GetDomain有1个输入 “URL”,1个输出 “域”

例1

INPUT: http://support.domain.com/default.aspx?id=12345
OUTPUT: support.domain.com

例题

INPUT: http://www.domain.com/default.aspx?id=12345
OUTPUT: www.domain.com

示例3

INPUT: http://localhost/default.aspx?id=12345
OUTPUT: localhost

Answer 1:

您可以使用Request对象或Uri对象来获取URL的主机。

使用Request.Url

string host = Request.Url.Host;

使用艺术

Uri myUri = new Uri("http://www.contoso.com:8080/");   
string host = myUri.Host;  // host is "www.contoso.com"


Answer 2:

试着这样;

Uri.GetLeftPart( UriPartial.Authority )

定义URI的配件为Uri.GetLeftPart方法。


http://www.contoso.com/index.htm?date=today - > http://www.contoso.com

http://www.contoso.com/index.htm#main - > http://www.contoso.com

NNTP://news.contoso.com/123456@contoso.com - > NNTP://news.contoso.com

文件://server/filename.ext - >文件://服务器

Uri uriAddress = new Uri("http://www.contoso.com/index.htm#search");
Console.WriteLine("The path of this Uri is {0}", uriAddress.GetLeftPart(UriPartial.Authority));

Demo



Answer 3:

使用开放的类,并使用主机属性

Uri url = new Uri(@"http://support.domain.com/default.aspx?id=12345");
Console.WriteLine(url.Host);


Answer 4:

试试下面的语句

 Uri myuri = new Uri(System.Web.HttpContext.Current.Request.Url.AbsoluteUri);
 string pathQuery = myuri.PathAndQuery;
 string hostName = myuri.ToString().Replace(pathQuery , "");

例1

 Input : http://localhost:4366/Default.aspx?id=notlogin
 Ouput : http://localhost:4366

例题

 Input : http://support.domain.com/default.aspx?id=12345
 Output: support.domain.com


Answer 5:

最好的办法,而要做到正确的方式是使用Uri.Authority

加载并使用开放的,像这样:

Uri NewUri;

if (Uri.TryCreate([string with your Url], UriKind.Absolute, out NewUri))
{
     Console.Writeline(NewUri.Authority);
}

Input : http://support.domain.com/default.aspx?id=12345
Output : support.domain.com

Input : http://www.domain.com/default.aspx?id=12345
output : www.domain.com

Input : http://localhost/default.aspx?id=12345
Output : localhost

如果你想操作的URL,使用开放的目的是做的很好的方式。 https://msdn.microsoft.com/en-us/library/system.uri(v=vs.110).aspx



Answer 6:

试试这个

Console.WriteLine(GetDomain.GetDomainFromUrl("http://support.domain.com/default.aspx?id=12345"));

它将输出support.domain.com

或者试试

Uri.GetLeftPart( UriPartial.Authority )


Answer 7:

您应该构建您的字符串作为URI对象和管理局属性返回你所需要的。



Answer 8:

WWW是一个别名,所以如果你想要一个域名,你不需要它。 这是我litllte函数从字符串中得到真正的域名

private string GetDomain(string url)
    {
        string[] split = url.Split('.');
        if (split.Length > 2)
            return split[split.Length - 2] + "." + split[split.Length - 1];
        else
            return url;

    }


文章来源: Get host domain from URL?