ValueHelper

来源:互联网 发布:淘宝怎么写追评 编辑:程序博客网 时间:2024/06/14 05:19
using System;using System.Collections.Generic;using System.Linq;using System.Net;using System.Text;using System.Threading.Tasks;using System.Web;namespace FmallExternal.Helper{    /// <summary>    /// 获取特定值    /// </summary>    public static class ValueHelper    {        /// <summary>        /// 获取币别符号        /// </summary>        /// <param name="currency">币别</param>        /// <returns>币别符号</returns>        public static string GetCurrencySymbol(string currency)        {            if (string.IsNullOrWhiteSpace(currency))            {                return null;            }            else            {                switch (currency)                {                    case "RMB":                        return "¥";                    case "USD":                        return "$";                    default:                        return null;                }            }        }        /// <summary>        /// 验证码内容生成函数        /// </summary>        /// <param name="vcodeNumber">字数</param>        /// <returns>随机字符串</returns>        public static string RandomNum(int vcodeNumber)        {            if (vcodeNumber >= int.MaxValue) return "";            string[] _vcarray = new string[]{                "2","3","4","5","6","7","8","9",                "A","B","C","D","E","F","G","H",                "J","K","L","M","N","P","Q","R",                "S","T","U","V","W","X","Y","Z",                "a","b","c","d","e","f","g","h",                "i","j","k","m","n","p","q","r",                "s","t","u","v","w","x","y","z"            };            //验证码内容            string validatecode_context = "";            //temp = -1, //记录上次随机数值,尽量避免生产几个一样的随机数            int limit = vcodeNumber + 1;            Random rand = new Random();            for (int i = 1; i < limit; i++)            {                //if (temp != -1)                //{                //    rand = new Random(i * temp * unchecked((int)DateTime.Now.Ticks));                //}                int t = rand.Next(_vcarray.Length);                //if (temp != -1 && temp == t)                //{                //    return RandomNum(vcode_number);                //}                //temp = t;                validatecode_context += _vcarray[t];            }            return validatecode_context;        }        /// <summary>        /// 获取客户端IP        /// </summary>        /// <param name="skipproxy">是否跳过代理</param>        /// <returns>客户端IP</returns>        public static string GetClientIP(bool skipproxy)        {            string result = null;            if (skipproxy)            {//忽略代理,获取客户端IP或最后一个代理IP                result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];            }            else            {                #region 有代理,获取客户端IP,有伪造可能                foreach (var header in new[] { "HTTP_CLIENT_IP", "HTTP_X_FORWARDED_FOR", "HTTP_FROM", "REMOTE_ADDR" })                {                    string temp = HttpContext.Current.Request.ServerVariables[header];                    if (!string.IsNullOrEmpty(temp) && ValidateHelper.IsIPAddress(temp))                    {                        result = temp;                        break;                    }                }                if (string.IsNullOrEmpty(result))                {                    result = System.Web.HttpContext.Current.Request.UserHostAddress;                }                if (string.IsNullOrEmpty(result))                {                    #region get local(LAN) Connected ip address                    //This is for Local(LAN) Connected ID Address                    string stringHostName = Dns.GetHostName();                    //Get Ip Host Entry                    IPHostEntry ipHostEntries = Dns.GetHostEntry(stringHostName);                    //Get Ip Address From The Ip Host Entry Address List                    IPAddress[] arrIpAddress = ipHostEntries.AddressList;                    if (arrIpAddress.Length >= 2)                    {                        result = arrIpAddress[arrIpAddress.Length - 2].ToString();                    }                    else if (arrIpAddress.Length > 0)                    {                        result = arrIpAddress[0].ToString();                    }                    else                    {                        arrIpAddress = Dns.GetHostAddresses(stringHostName);                        if (arrIpAddress.Length >= 0)                        {                            result = arrIpAddress[0].ToString();                        }                        else                        {                            result = "127.0.0.1";                        }                    }                    #endregion                }                //多个代理情况处理,一般第一个会是真实iP                if (!string.IsNullOrEmpty(result))                {                    result = result.Split(',')[0].Trim();                }                #endregion            }            if (result == "::1")            {                return "127.0.0.1";            }            else if (ValidateHelper.IsIPAddress(result))            {                return result;            }            else            {                return "invalid ip";            }        }        /// <summary>        /// 跳过代理获取客户端IP        /// </summary>        /// <returns>客户端IP</returns>        public static string GetClientIP()        {            return GetClientIP(false);        }    }}
0 0
原创粉丝点击