ChiakiYu.Common.Web.WebHelper.GetServerDomain C# (CSharp) Method

GetServerDomain() public static method

获取根域名
public static GetServerDomain ( Uri uri, string domainRules ) : string
uri System.Uri uri
domainRules string 域名规则
return string
        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;
        }