zoukankan      html  css  js  c++  java
  • C#通过URL获取顶级域名的方法

    写的一个小工具需要获取指定URL的顶级域名,就写了这么个方法:

    private static string GetBaseDomain(string host)
            {
                List<string> list = new List<string>(".com|.co|.info|.net|.org|.me|.mobi|.us|.biz|.xxx|.ca|.co.jp|.com.cn|.net.cn|.org.cn|.mx|.tv|.ws|.ag|.com.ag|.net.ag|.org.ag|.am|.asia|.at|.be|.com.br|.net.br|.bz|.com.bz|.net.bz|.cc|.com.co|.net.co|.nom.co|.de|.es|.com.es|.nom.es|.org.es|.eu|.fm|.fr|.gs|.in|.co.in|.firm.in|.gen.in|.ind.in|.net.in|.org.in|.it|.jobs|.jp|.ms|.com.mx|.nl|.nu|.co.nz|.net.nz|.org.nz|.se|.tc|.tk|.tw|.com.tw|.idv.tw|.org.tw|.hk|.co.uk|.me.uk|.org.uk|.vg".Split('|'));
                string[] hs = host.Split(".".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
    
                if (hs.Length > 2)
                {
                    //传入的host地址至少有三段
                    int p2 = host.LastIndexOf('.');                 //最后一次“.”出现的位置
                    int p1 = host.Substring(0, p2).LastIndexOf('.');//倒数第二个“.”出现的位置
                    string s1 = host.Substring(p1);
                    if (!list.Contains(s1))
                        return s1.TrimStart('.');
    
                    //域名后缀为两段(有用“.”分隔)
                    if (hs.Length > 3)
                        return host.Substring(host.Substring(0, p1).LastIndexOf('.'));
                    else
                        return host.TrimStart('.');
                }
                else if (hs.Length == 2)
                {
                    return host.TrimStart('.');
                }
                else
                {
                    return string.Empty;
                }
            }

    调用方式(以下代码中的 url 为实际访问的网址):

    string baseDomain = GetBaseDomain((new Uri(url)).Host);

    因为写的程序是.NET 2.0 的,如果是高版本的话可以把List改为HashSet,效率应该会高一点(虽然基本感觉不出来,但处理上万行数据的话还是建议用HashSet,效率提升很明显,元素数量在10个以内的话两个是基本没区别的)

  • 相关阅读:
    HDU 2098 分拆素数和 数论
    CodeForces The Endless River
    CodeForces Good Words
    CodeForces A or B Equals C
    HDU 1251 统计难题 字典树/STL
    CSUOJ 1555 Inversion Sequence 线段树/STL
    OpenJudge P4979 海贼王之伟大航路 DFS
    敌兵布阵 线段树
    HDU 4004 The Frog's Games 二分
    HDU 2578 Dating with girls(1) 二分
  • 原文地址:https://www.cnblogs.com/mic86/p/3059662.html
Copyright © 2011-2022 走看看