Csharp/C#教程:从任何URL获取确切的域名分享


从任何URL获取确切的域名

我需要从任何Url中提取确切的域名。

例如,

url: http : //www.google.com – >域名:google.com

url: http : //www.google.co.uk/path1/path2 – >域名:google.co.uk

怎样才能在c#中实现? 是否有完整的TLD列表或该任务的解析器?

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

var uri = new Uri("https://www.google.co.uk/path1/path2"); var host = uri.Host; // host == "www.google.co.uk" 

但是,没有内置的方法可以从“www.google.co.uk”中删除子域“www”。 你需要实现自己的逻辑,例如

 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" } 

使用:

 new Uri("https://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("https://", "")); 

输入:

 https://www.stackoverflow.com/questions/5984361/c-sharp-getting-exact-domain-name-from-any-url?s=45faab89-43eb-41dc-aa5b-8a93f2eaeb74#new-answer 

输出:

 stackoverflow.com 

也适用于以下。

https://www.google.com→google.com

https://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

试试System.Uri课程。

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

 new Uri("https://www.google.co.uk/path1/path2").Host 

返回“www.google.co.uk”。 从那里它是字符串操纵。 :/

使用:

 var uri =new Uri(Request.RawUrl); // to get the url from request or replace by your own var domain = uri.GetLeftPart( UriPartial.Authority ); 

输入:

 Url = https://google.com/?search=true&q=how+to+use+google 

结果:

 domain = google.com 

另一种变体,没有依赖:

 string GetDomainPart(string url) { var doubleSlashesIndex = url.IndexOf("://"); var start = doubleSlashesIndex != -1 ? doubleSlashesIndex + "://".Length : 0; var end = url.IndexOf("/", start); if (end == -1) end = url.Length; string trimmed = url.Substring(start, end - start); if (trimmed.StartsWith("www.")) trimmed = trimmed.Substring("www.".Length ); return trimmed; } 

例子:

https://www.google.com → google.com

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

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

https://www2.google.com → www2.google.com

上述就是C#学习教程:从任何URL获取确切的域名分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1026126.html

(0)
上一篇 2022年1月9日
下一篇 2022年1月9日

精彩推荐