2010-01-11 127 views
2

我的ASP.NET应用程序检查调用客户端的IP。C#:在ProxyPass后获取客户端IP

但我必须拥有它背后一个Linux框,阿帕奇将其重定向到一个内部的Windows 2003运行IIS服务器,如:

的ProxyPass/SRS http://192.168.21.15/srs/

其中192.168.21.15是内部IP Windows服务器和192.168.21.1从互联网上获取请求的Linux机箱的内部IP。现在

,在我看来,从转发到w.x.y.15所有Internet的请求似乎起源从w.x.y.1

我如何保存(或转发)原IP?

我听说过X-forwarded-for ...但我如何在C#中检索这个值?

谢谢 莱因哈德

回答

1

一般来说,如果一个代理服务器修改原始IP地址存储在服务器HTTP_X_FORWARDED_FOR变量的IP地址信息。要使用C#访问此ASP.NET中您可以使用:

Request.ServerVariables["HTTP_X_FORWARDED_FOR"] 
0

对于Java的考生,可以使用:

String ipAddress=request.getHeader("X-Forwarded-For"); 

如果将使用request.getRemoteAddr(),它可能会返回127.0.0.1是否已经有阿帕奇在您的部署服务器上重定向。