.net 获取域名的顶级域名

  

  最近在做主机管理系统,当用户给某个主机更改主机头时,要判断绑定的主机头是否已经备案,查询是否备案的服务已经有了,传入的参数是一个域名的顶级域名。想在网上找个正则,没有发现合适的,就自已写了一个返回顶级域名的方法,做个备忘,以后如果其它语言用到此功能,直接按方法的逻辑改就行,方法如下:

  

/// <summary>
    /// 获取域名的顶级域名
    /// </summary>
    /// <param name="domain"></param>
    /// <returns></returns>
    public static string GetTopDomainName(string domain)
    {
       //https://www.safsd.asdfasdf.baidu.com.cn/ssssd/s/b/d/hhh.html?domain=sfsdf.com.cn&id=1
        domain = domain.Trim().ToLower();
        string rootDomain = ".com.cn|.gov.cn|.cn|.com|.net|.org|.so|.co|.mobi|.tel|.biz|.info|.name|.me|.cc|.tv|.asiz|.hk";
        if (domain.StartsWith("http://")) domain=domain.Replace("http://", "");
        if (domain.StartsWith("https://")) domain = domain.Replace("https://", "");
        if (domain.StartsWith("www.")) domain = domain.Replace("www.", "");
        //safsd.asdfasdf.baidu.com.cn/ssssd/s/b/d/hhh.html?domain=sfsdf.com.cn&id=1
        if (domain.IndexOf("/") > 0)
            domain = domain.Substring(0, domain.IndexOf("/"));
        //safsd.asdfasdf.baidu.com.cn
        foreach (string item in rootDomain.Split('|'))
        {
            if (domain.EndsWith(item))
            {
                domain = domain.Replace(item, "");
                if (domain.LastIndexOf(".") > 0)//adfasd.asdfas.cn
                {
                    domain = domain.Replace(domain.Substring(0, domain.LastIndexOf(".")+1), "");
                }
                return domain +item ;
            }
            continue;
        }
        return "";
    }

 

 

转载于:https://www.cnblogs.com/jxcia_Lai/archive/2012/08/02/2620217.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值