首先我们需要了解Request.ServerVariables 里的一些使用说明, 这里可以查看该作者所写的Request的更多详细说明
通常我们需要了解以下这些使用说明:
- Request.ServerVariables["HTTP_VIA"] 获取用户内部的IP
- Request.ServerVariables["REMOTE_ADDR"] 获取发出请求的远程主机IP地址
- Request.ServerVariables["HTTP_X_FORWARDED_FOR"] 获取真实客户端IP 地址 (服务器名 + 端口)
1 ///2 /// 获取客户端IP 3 /// 4 ///客户端IP地址 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 else15 {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 else20 ip = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();21 }22 23 return ip;24 }