public static string GetServerDomain(Uri uri, string[] domainRules)
{
if (uri == null)
return string.Empty;
var strHostName = uri.Host.ToLower(); // 此处获取值转换为小写
if (strHostName.IndexOf('.') > 0)
{
var strArr = strHostName.Split('.');
var lastStr = strArr.GetValue(strArr.Length - 1).ToString();
var number = -1;
if (int.TryParse(lastStr, out number)) // 如果最后一位是数字,那么说明是IP地址
{
return strHostName; // 替换.为纯数字输出
}
var returnStr = string.Empty;
foreach (var item in domainRules)
{
if (strHostName.EndsWith(item.ToLower())) // 如果最后有找到匹配项
{
var findStr = item.ToLower();
var replaceStr = strHostName.Replace(findStr, "");
if (replaceStr.IndexOf('.') > 0) // 存在二级域名或者三级,比如:www.spacebuilder
{
var replaceArr = replaceStr.Split('.'); // www spacebuilder
returnStr = replaceArr.GetValue(replaceArr.Length - 1) + findStr;
return returnStr;
}
returnStr = replaceStr + findStr; // 连接起来输出为:spacebuilder.com
return returnStr;
}
returnStr = strHostName;
}
return returnStr;
}
return strHostName;
}