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