比如:http://www.mydomain.com/list.aspx?id=8  要获取mydomain.com
     http://news.mydomain.com/list.aspx?id=8 要获取mydomain.com
     http://history.news.mydomain.com/list.aspx?id=8 要获取mydomain.com
     http://history.news.mydomain.com.cn/list.aspx?id=8 要获取mydomain.com.cn
     http://www.mydomain.cn  要获取mydomain.cn
     http://mydomain.cn 要获取mydomain.cn
这样的代码如何写呢?最好能给出代码实现

解决方案 »

  1.   

    Request.Url.Host.ToString()这个可以获取排除http:// 和后面的文件名,取到域名主体部分,但是我不要二级域名的名字
      

  2.   

    获取到域名的域名主题部分之后,恐怕.net类库中再没有类似的方法了,那么可以从域名主题部分从后向前按照规则截取吧。
    .com
    .com.cn 
    .net.cn
    .net.cn
    .gov.cn
    .org
    ....
    这些是特征字符串。
      

  3.   

    按照你自己的思路. 把域名取出来.
    正则匹配. 别管前面是多少. 只取最后的XXX.XXX
    然后 WWW.XXX.XXX
    就肯定是顶级域名啦.
      

  4.   

    最后的有com有net有cn也有net.cn、com.cn、gov.cn、org.cn等,不太好处理
      

  5.   

    也就那么多了,定一个字符串数组,分析url地址截取,ok
      

  6.   

    host=lcase(request.servervariables("HTTP_HOST")想得到mydomain.com 就用host=right(host,12) 后面的12是你要得到的域名的字节长度
      

  7.   

    .com
    .cn
    .mobi
    .tel
    .asia
    .net
    .org
    .name
    .me
    .tv
    .com.cn
    .net.cn
    .org.cn
    .gov.cn
    .cc
    .hk
    .biz
    .info
    拿到这个数组就可以解决了
      

  8.   

    虽然代码比较累赘,但是也总算实现了        public bool IsNumeric(string str)
            {
                try { int i = Convert.ToInt32(str); return true; }
                catch { return false; }
            }        /// <summary>
            /// 获取服务器根域名  
             /// </summary>
            /// <returns></returns>
            public string GetServerDomain()
            {
                string str = HttpContext.Current.Request.Url.Host.ToString().ToLower();//此处获取值转换为小写
                if (str.IndexOf('.') > 0)
                {
                    string[] strArr = str.Split('.');
                    string lastStr = strArr.GetValue(strArr.Length - 1).ToString();
                    if (IsNumeric(lastStr)) //如果最后一位是数字,那么说明是IP地址
                    {
                        return str.Replace(".", ""); //替换.为纯数字输出 
                    }
                    else //否则为域名
                    {
                        string[] domainRules = ".com.cn|.net.cn|.org.cn|.gov.cn|.com|.net|.cn|.org|.cc|.me|.tel|.mobi|.asia|.biz|.info|.name|.tv|.hk|.公司|.中国|.网络".Split('|');
                        string findStr = string.Empty;
                        string replaceStr = string.Empty;
                        string returnStr = string.Empty;
                        for (int i = 0; i < domainRules.Length; i++)
                        {
                            if (str.EndsWith(domainRules[i].ToLower())) //如果最后有找到匹配项
                            {
                                findStr = domainRules[i].ToString(); //www.px915.COM
                                replaceStr = str.Replace(findStr, ""); //将匹配项替换为空,便于再次判断
                                if (replaceStr.IndexOf('.') > 0) //存在二级域名或者三级,比如:www.px915
                                {
                                    string[] replaceArr = replaceStr.Split('.'); // www px915
                                    returnStr = replaceArr.GetValue(replaceArr.Length - 1).ToString() + findStr;
                                    return returnStr;
                                }
                                else //px915
                                {
                                    returnStr = replaceStr + findStr; //连接起来输出为:px915.com
                                    return returnStr;
                                };
                            }
                            else
                            { returnStr = str; }
                        }
                        return returnStr;
                    }
                }
                else
                {
                    return str;
                }
            }
      

  9.   

    取到URL对字符串进行处理
    匹配也行,直接截取也可以。
      

  10.   

    [^\.]+(\.com\.cn|\.net\.cn|\.org\.cn|\.gov\.cn|\.com|\.net|\.cn|\.org|\.cc|\.me|\.tel|\.mobi|\.asia|\.biz|\.info|\.name|\.tv|\.hk|\.公司|\.中国|\.网络)正则,不用那么多代码。
      

  11.   

    string link = "http://snvs.789.weibo.souhu.com/wen/wobei/index.html";
                    string result = (link = (link = link.Substring(link.IndexOf('/') + 2)).Substring(0, link.IndexOf('/') == -1 ? link.Length : link.IndexOf('/'))).Substring(link.LastIndexOf(".", link.LastIndexOf('.') - 1) + 1);
                    Console.WriteLine(result);
      

  12.   


    <?php $domainExtArr = array(
    '.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',
    );