如字符串为:
string a="http://www.cnblogs.com";
string b="http://q.cnblogs.com";
string c="http://bbs.youa.baidu.com/"
我知道可以用Uri得到地址的域名:
Uri a=new Uri(a);
Uri b=new Uri(b);
Uri c=new Uri(c);
string ahost=a.Host;//www.cnblogs.com
string bhost=b.Host;//q.cnblogs.com
string chost=c.Host;//bbs.youa.baidu.com
我现在想得到主域名,也就是说我想得到的结果是:
cnblogs.com
cnblogs.com
baidu.com
请高手指点。
自己解决了:
public static 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;
}