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