.NET 服务端如何透过网络代理IP获取到客户端真实ip
一般情况下 .net web服务端可以通过 Request.Url.Host或者 ServerVariables("REMOTE_ADDR") 来获得得客户端的IP地址
但如果客户端使用了代理服务器来访问,那这个时候取得的就是代理IP地址并不是实际的客户端ip,这个时候就可以通过 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 来尝试获取真正的地址(需要注意的是如果客户端未使用代理的时候直接使用会获取不到值)。
可以这样处理
//先获取过滤代理的 如果没有值则说明没有使用代理 那就直接获取ip地址即可 var ip = Request.ServerVariables("HTTP_X_FORWARDED_FOR"); //如果穿透代理方式获取IP没有值就使用常规的方式读取 ip = string.IsNullOrEmpty(ip)?Request.ServerVariables("REMOTE_ADDR"):ip;