ASP.NET 获取IP地址的方法
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#region 获取IP地址 public string getIP() { string result = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; if (!string.IsNullOrEmpty(result)) { //可能有代理 if (result.IndexOf(".") == -1) //没有“.”肯定是非IPv4格式 result = null; else { if (result.IndexOf(",") != -1) { //有“,”,估计多个代理。取第一个不是内网的IP。 result = result.Replace(" ", "").Replace("'", ""); string[] temparyip = result.Split(",;".ToCharArray()); foreach (string t in temparyip) { if (IsIPAddress(t) && t.Substring(0, 3) != "10." && t.Substring(0, 7) != "192.168" && t.Substring(0, 7) != "172.16.") { return t; //找到不是内网的地址 } } } else if (IsIPAddress(result)) //代理即是IP格式 return result; else result = null; //代理中的内容 非IP,取IP } } if (string.IsNullOrEmpty(result)) result = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; if (string.IsNullOrEmpty(result)) result = System.Web.HttpContext.Current.Request.UserHostAddress; return string.IsNullOrEmpty(result) ? "0.0.0.0" : result; } #endregion