真正的获取客户端真实IP地址及利弊分析
2009-11-30 19:24
796 查看
/**//// <summary> /// 取得客户端真实IP。如果有代理则取第一个非内网地址 /// by flower.b /// </summary> public static string IPAddress { get { string result = String.Empty; result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; if(result!=null&&result!= String.Empty) { //可能有代理 if(result.IndexOf(".")==-1) //没有“.”肯定是非IPv4格式 result = null; else { if(result.IndexOf(",")!=-1) { //有“,”,估计多个代理。取第一个不是内网的IP。 result = result.Replace(" ","").Replace("'",""); string[] temparyip = result.Split(",;".ToCharArray()); for(int i=0;i<temparyip.Length;i++) { if( Text.IsIPAddress(temparyip[i]) && temparyip[i].Substring(0,3)!="10." && temparyip[i].Substring(0,7)!="192.168" && temparyip[i].Substring(0,7)!="172.16.") { return temparyip[i]; //找到不是内网的地址 } } } else if(Text.IsIPAddress(result)) //代理即是IP格式 return result; else result = null; //代理中的内容 非IP,取IP } } string IpAddress = (HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]!=null && HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] !=String.Empty)?HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]:HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; if (null == result || result == String.Empty) result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; if (result == null || result == String.Empty) result = HttpContext.Current.Request.UserHostAddress; return result; } }
相关文章推荐
- 真正的获取客户端真实IP地址及利弊分析
- PHP获取客户端真实IP地址的5种情况分析和实现代码
- PHP获取客户端真实IP地址的5种情况分析和实现代码
- jfinal --获取客户端真实的ip地址
- java 如何获取客户端的真实IP地址
- 伪造IP及获取客户端真实IP地址
- 获取真实的客户端IP地址
- PHP 获取客户端真实IP地址多种方法小结
- Java获取客户端真实IP地址的两种方法
- 利用ASP技术获取客户端真实IP地址
- ASP如何获取客户端真实IP地址
- nginx反向代理后获取不到客户端的真实ip地址
- 1、获取客户端真实ip地址
- JSP中如何获取客户端真实IP地址
- Java获取客户端的真实IP地址
- Java获取请求客户端的真实IP地址
- 真正的取真实IP地址及利弊
- Java获取客户端真实IP地址的两种方法
- Java获取真实客户端IP地址
- [hidotnet]真正的取真实IP地址及利弊