我之前使用下面的代码通过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:



我还找到了ISAPI筛选器模块,但无法使其工作:devcentral.f5.com/x_forwarded_for_log_filter_for_windows_servers

最佳答案

通过在源代码文件中使用HTTP_CLIENT_IP而不是REMOTE_ADDR解决了问题。

通过安装IISt推荐的here解决了有关IIS日志的问题。另外,在安装“高级日志记录”后,我得到了错误“503:服务不可用”,但通过为Program Files\IIS文件夹授予Everyone读写权限并启动了失败的应用程序池,解决了此问题。

http://kb.parallels.com/6735

建议的另一种解决方案here是:

10-08 09:06