Последняя фиксация промежуточного программного обеспечения удаленного IP-адреса, похоже, намеренно изменила алгоритм, выбирающий удаленный IP-адрес из списка прокси. К сожалению, предыдущий алгоритм (который я написал и использовал в производстве с несколькими сотнями тысяч клиентов: P) - это тот алгоритм, который согласуется с письменной спецификацией того, как должен работать X-Forwarded-For.
tl; dr plz, чтобы отменить эту часть фиксации, я хотел бы иметь возможность обновить Rails, но при этом remote_ip
возвращает правильный IP-адрес.
Это все еще проблема. Из сообщений о переполнении стека: https://stackoverflow.com/questions/5636032/request-remote-ip-returns-wrong-ip
https://stackoverflow.com/questions/4465476/rails-get-client-ip-address
https://stackoverflow.com/questions/19317255/rails-how-to-obtain-visitors-ip-address
https://stackoverflow.com/questions/1226959/how-to-get-client-ip-and-server-ip-using-rails
Все эти вопросы указывают на использование request.remote_ip
. Но иногда это возвращает неверный IP-адрес. Я использую следующий код, чтобы получить правильный IP-адрес.
response = open('https://jsonip.com/').read
data = JSON.parse(response)
ip_address = data['ip']
rescue
ip_address = request.remote_ip
end
Есть ли возможность исправить это в будущем выпуске?
Пожалуйста, проверьте, может ли это помочь. Измените / переопределите remote_ip.
https://stackoverflow.com/questions/20124292/how-to-log-real-client-ip-in-rails-log-when-behind-proxy-like-nginx#51440551
Похоже, №24521 поможет решить эту проблему? Кто-нибудь из вас захочет продвигать вперед этот пиар?
Самый полезный комментарий
Это все еще проблема. Из сообщений о переполнении стека: https://stackoverflow.com/questions/5636032/request-remote-ip-returns-wrong-ip
https://stackoverflow.com/questions/4465476/rails-get-client-ip-address
https://stackoverflow.com/questions/19317255/rails-how-to-obtain-visitors-ip-address
https://stackoverflow.com/questions/1226959/how-to-get-client-ip-and-server-ip-using-rails
Все эти вопросы указывают на использование
request.remote_ip
. Но иногда это возвращает неверный IP-адрес. Я использую следующий код, чтобы получить правильный IP-адрес.Есть ли возможность исправить это в будущем выпуске?