我之前使用下面的代码通过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
EDIT
发现类似问题here:
已经部署了很多2008 32位
使用 Citrix 的标准 Web 服务器
netscaler isapi(netscaler 是
负载均衡器),在所有情况下
客户端IP地址记录在
标准 IIS 日志。在一个新项目上我
被要求部署2008 R2,
配置 IIS 7.5 与
我过去如何配置 IIS 7.0,
然而这次客户端IP是
返回负载均衡器地址
日志。这是奇怪的部分,我
安装了“高级日志记录”,它是
显示客户端IP地址
正确地,所以 isapi 正在做它的
工作。已经用谷歌搜索死这个了
并需要一些建议。
我还找到了 ISAPI Filter 模块,但无法使其工作:devcentral.f5.com/x_forwarded_for_log_filter_for_windows_servers
通过在源代码文件中使用 HTTP_CLIENT_IP 而不是 REMOTE_ADDR 解决了问题。
有关 IIS 日志的问题已通过按照建议安装 IIS 高级日志记录模块解决here。另外,在安装高级日志记录后,我收到错误“503:服务不可用”,但通过向“每个人”授予 Program Files\IIS 文件夹的读写权限并启动失败的应用程序池解决了此问题。
http://kb.parallels.com/6735
建议另一个解决方案here is:
在 NetScaler 上的“加载
平衡”,“服务”然后在
高级选项卡,在设置下,检查
“使用源 IP”框和
然后在标头字段中输入“客户端 IP”
“客户端IP”
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)