用C#通过网址得到域名

最近在写个小工具的时候需要通过网址得到域名,不知道怎么Uri里只有得到主机名的方法而没有得到域名的方法,于是只有自己实现一个,但是我感觉这个方法比较变态,希望拿出来和大家一起讨论下,看看有没有更好的方法?

例如: http://www.google.co.uk,应该返回google.co.uk, http://www.test.googlepages.com,应该返回googlepages.com

我的程序如下,拿出来讨论下,写的比较弱智,必须预先知道所有的域名后缀。
请大家告诉我好的方法:

private   string  GetDomain( string  url)
        {
            
string  host;
            Uri uri;
            
try
            {

                uri 
=   new  Uri(url);
                host 
=  uri.Host  +   "   " ;
            }
            
catch
            {
                
return   "" ;
            }

            
string [] BeReplacedStrs  =   new   string [] {  " .com.cn " " .edu.cn " " .net.cn " " .org.cn " " .co.jp " " .gov.cn " " .co.uk " " ac.cn " " .edu " " .tv " " .info " " .com " " .ac " " .ag " " .am " " .at " " .be " " .biz " " .bz " " .cc " " .cn " " .com " " .de " " .es " " .eu " " .fm " " .gs " " .hk " " .in " " .info " " .io " " .it " " .jp " " .la " " .md " " .ms " " .name " " .net " " .nl " " .nu " " .org " " .pl " " .ru " " .sc " " .se " " .sg " " .sh " " .tc " " .tk " " .tv " " .tw " " .us " " .co " " .uk " " .vc " " .vg " " .ws " " .il " " .li " " .nz "  };

            
foreach  ( string  oneBeReplacedStr  in  BeReplacedStrs)
            {
                
string  BeReplacedStr  =  oneBeReplacedStr  +   "   " ;
                
if  (host.IndexOf(BeReplacedStr)  !=   - 1 )
                {
                    host 
=  host.Replace(BeReplacedStr,  string .Empty);
                    
break ;
                }
            }

            
int  dotIndex  =  host.LastIndexOf( " . " );
            host 
=  uri.Host.Substring(dotIndex  +   1 );
            
return  host;
        }


谢谢了!  

http://www.cnblogs.com/csharphack/archive/2006/09/26/get_domain_from_url.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值