c# 查看计算机域名,c# - 从URL获取主机域?

c# - 从URL获取主机域?

如何从字符串URL获取主机域?

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

例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

8个解决方案

220 votes

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

使用Request.Url

string host = Request.Url.Host;

使用Uri

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

string host = myUri.Host; // host is "www.contoso.com"

Adil answered 2019-07-14T13:29:25Z

40 votes

试试这样;

Uri.GetLeftPart( UriPartial.Authority )

定义Uri.GetLeftPart方法的URI部分。

[[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

[[file:// 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

Soner Gönül answered 2019-07-14T13:30:37Z

26 votes

使用Uri类并使用Host属性

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

Console.WriteLine(url.Host);

Habib answered 2019-07-14T13:31:02Z

10 votes

尝试以下声明

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

SiwachGaurav answered 2019-07-14T13:31:33Z

4 votes

最好的方法,正确的方法是使用Uri.Authority字段

像这样加载和使用Uri:

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,使用Uri对象是一个很好的方法。[https://msdn.microsoft.com/en-us/library/system.uri(v=vs.110).aspx]

Guillaume Beauvois answered 2019-07-14T13:32:19Z

1 votes

试试这个

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

它将输出support.domain.com

或者试试

Uri.GetLeftPart( UriPartial.Authority )

soniccool answered 2019-07-14T13:32:55Z

0 votes

您应该将您的字符串构造为URI对象,并且Authority属性返回您需要的内容。

Can Guney Aksakalli answered 2019-07-14T13:33:23Z

-2 votes

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;

}

Xavius Pupuss answered 2019-07-14T13:33:49Z

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值