Невозможно получить IP-адрес пользователя (прокси / брандмауэр / балансировщик нагрузки)

Раньше я использовал приведенный ниже код для получения ip клиента с asp.net, но после того, как я перешел на 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

РЕДАКТИРОВАТЬ

Обнаружил аналогичную проблему здесь :

Развернуто много 2008 32-битных стандартные веб-серверы с использованием Citrix 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

6
задан HasanG 19 May 2011 в 21:57
поделиться