首先我们需要了解Request.ServerVariables 里的一些使用说明, 这里可以查看该作者所写的Request的更多详细说明http://blog.csdn.net/chenxiang199055/article/details/7850240
通常我们需要了解以下这些使用说明:
- Request.ServerVariables["HTTP_VIA"] 获取用户内部的IP
- Request.ServerVariables["REMOTE_ADDR"] 获取发出请求的远程主机IP地址
- Request.ServerVariables["HTTP_X_FORWARDED_FOR"] 获取真实客户端IP 地址 (服务器名 + 端口)
1 /// <summary> 2 /// 获取客户端IP 3 /// </summary> 4 /// <returns>客户端IP地址</returns> 5 protected string GetClientIP() 6 { 7 string ip = String.Empty; 8 9 if (Request.ServerVariables["HTTP_VIA"] == null || 10 string.IsNullOrEmpty(Request.ServerVariables["HTTP_VIA"].ToString())) 11 { 12 ip = Request.ServerVariables["REMOTE_ADDR"].ToString(); 13 } 14 else 15 { 16 if (Request.ServerVariables["HTTP_X_FORWARDED_FOR"] == null || 17 string.IsNullOrEmpty(Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString())) 18 ip = Request.ServerVariables["REMOTE_ADDR"].ToString(); 19 else 20 ip = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString(); 21 } 22 23 return ip; 24 }