2

我的 ASP.NET 应用程序检查调用客户端的 IP。

但是我必须将它托管在 Linux-Box 后面,Apache 将它重定向到运行 IIS 的内部 Windows 2003 服务器,例如:

代理通行证 /srs http://192.168.21.15/srs/

其中 192.168.21.15 是 Windows 服务器的内部 IP,192.168.21.1 是从 Internet 获取请求的 Linux 机器的内部 IP。

现在,在我看来,转发到 wxy15 的来自互联网的请求似乎都来自 wxy1

如何保留(或转发)原始 IP?

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

谢谢你,莱因哈德

4

2 回答 2

1

通常,如果代理服务器修改了 IP 地址信息,则原始 IP 地址存储在 HTTP_X_FORWARDED_FOR 服务器变量中。要使用 C# 在 ASP.NET 中访问它,您可以使用:

Request.ServerVariables["HTTP_X_FORWARDED_FOR"]
于 2010-01-11T11:30:09.440 回答
0

对于 Java 候选人,您可以使用:

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

如果您将使用,如果您的部署服务器上存在 Apache 重定向request.getRemoteAddr(),它可能会返回。127.0.0.1

于 2011-12-22T06:55:12.250 回答