2010-01-11 229 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是否已經有阿帕奇在您的部署服務器上重定向。