获取当前域名的根域

 1         /// <summary>
 2         /// 获取当前域名的根域
 3         /// </summary>
 4         /// <param name="url">域名地址</param>
 5         /// <returns></returns>
 6         public static string RootDomain(string url)
 7         {
 8             if (!url.StartsWith("http://") && !url.StartsWith("https://"))
 9             {
10                 url = "http://" + url;
11             }
12 
13             var uri = new Uri(url);
14             string rootDomain;
15             switch (uri.HostNameType)
16             {
17                 case UriHostNameType.Dns:
18                     {
19                         if (uri.IsLoopback)
20                         {
21                             rootDomain = uri.Host;
22                         }
23                         else
24                         {
25                             string host = uri.Host;
26                             var hosts = host.Split('.');
27                             rootDomain = hosts.Length == 2 ? host : string.Format("{0}.{1}", hosts[1], hosts[2]);
28                         }
29                     }
30                     break;
31                 default:
32                     rootDomain = uri.Host;
33                     break;
34             }
35             return rootDomain;
36         }

  在网上搜索此类问题时,一般都是使用正则,且只是固定判断几个域名后缀的,例如.cn,.com,.net等,所以自己根据工作中的需求写了这个方法。
  供有需要的人参考使用。

原文地址:https://www.cnblogs.com/x1988z/p/3995791.html