【发布时间】:2011-08-26 06:26:09
【问题描述】:
我之前使用下面的代码通过 asp.net 获取客户端 IP,但在我移至 VDS 之后,此函数开始仅返回我的子网掩码,即 178.18.198.1 或 178.18.198.2。 谁能帮我解决这个问题?
Private Function GetIPAddress() As String
Dim sIPAddress As String = Nothing
sIPAddress = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If String.IsNullOrEmpty(sIPAddress) Then
sIPAddress = Request.ServerVariables("REMOTE_ADDR")
End If
Return sIPAddress
End Function
编辑
发现类似问题here:
已经部署了很多2008 32位 使用 citrix 的标准 Web 服务器 netscaler isapi(netscaler 是 负载均衡器),在所有情况下 客户端IP地址登录 标准 IIS 日志。在一个新项目上,我 被要求部署 2008 R2, 以相同方式配置 IIS 7.5 我过去如何配置 IIS 7.0, 但是这次客户端IP是 返回负载均衡器地址 日志。这是奇怪的部分,我 安装了“高级日志记录”,它是 显示客户端 IP 地址 正确,所以 isapi 正在做它的 工作。已经用谷歌搜索了这个 并且可以使用一些建议。
我还找到了 ISAPI 过滤器模块,但无法使其工作:devcentral.f5.com/x_forwarded_for_log_filter_for_windows_servers
【问题讨论】:
-
发现 HTTP_CLIENT_IP 返回了我正确的 ip 地址,但为什么这段代码不能像以前那样工作??
-
第 3 方模块,由 F5 的一位架构师 devcentral.f5.com/articles/… 编写
-
IIS7/8: Logging the real client IP in the IIS hit logsblogs.iis.net/deanc/… 选项:高级日志记录、ARR、F5 模块
标签: asp.net vb.net ip-address iis-7.5