C#:在ProxyPass之后获取客户端IP
我的ASP.NET应用程序检查调用客户端的IP 但我必须将其托管在Linux机箱中,Apache会将其重定向到运行IIS的内部Windows 2003服务器,如: ProxyPass/srs 其中192.168.21.15是Windows服务器的内部IP,192.168.21.1是从internet获取请求的Linux机箱的内部IP 现在,在我看来,从互联网转发到w.x.y.15的请求似乎都来自w.x.y.1 如何保留(或转发)原始IP 我听说X-for。。。但是如何在C#中检索这个值呢 谢谢,,C#:在ProxyPass之后获取客户端IP,c#,apache,ip-address,ip,forward,C#,Apache,Ip Address,Ip,Forward,我的ASP.NET应用程序检查调用客户端的IP 但我必须将其托管在Linux机箱中,Apache会将其重定向到运行IIS的内部Windows 2003服务器,如: ProxyPass/srs 其中192.168.21.15是Windows服务器的内部IP,192.168.21.1是从internet获取请求的Linux机箱的内部IP 现在,在我看来,从互联网转发到w.x.y.15的请求似乎都来自w.x.y.1 如何保留(或转发)原始IP 我听说X-for。。。但是如何在C#中检索这个值呢 谢谢,
Reinhard通常,如果代理服务器修改IP地址信息,则原始IP地址存储在HTTP_X_FORWARDED_FOR server变量中。要使用C在ASP.NET中访问此文件,您可以使用:
Request.ServerVariables["HTTP_X_FORWARDED_FOR"]
对于java候选者,您可以使用:
String ipAddress=request.getHeader("X-Forwarded-For");
如果要使用request.getRemoteAddr()
,则如果部署服务器上存在Apache重定向,则可能会返回127.0.0.1