Rails: `request.remote_ip` parece retornar o endereço IP errado

Criado em 18 out. 2012  ·  3Comentários  ·  Fonte: rails/rails

O último commit para o middleware de IP remoto parece ter deliberadamente revertido o algoritmo que seleciona o IP remoto de uma lista de proxies. Infelizmente, o algoritmo anterior (que escrevi e usei na produção com algumas centenas de milhares de clientes: P) é o que concorda com a especificação escrita de como o X-Forwarded-For deve funcionar.

tl; dr plz para reverter essa parte do commit, eu gostaria de poder atualizar o Rails e ainda ter remote_ip retornando o endereço IP correto.

actionpack

Comentários muito úteis

Isso ainda é um problema. De postagens de estouro de pilha: 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

Todas essas questões apontam para o uso de request.remote_ip . Mas isso às vezes retorna um endereço IP incorreto. Eu uso o seguinte código para obter um endereço IP correto.

      response = open('https://jsonip.com/').read
      data = JSON.parse(response)
      ip_address = data['ip']
    rescue
      ip_address = request.remote_ip
    end

Existe alguma possibilidade de corrigir isso em uma versão futura?

Todos 3 comentários

Isso ainda é um problema. De postagens de estouro de pilha: 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

Todas essas questões apontam para o uso de request.remote_ip . Mas isso às vezes retorna um endereço IP incorreto. Eu uso o seguinte código para obter um endereço IP correto.

      response = open('https://jsonip.com/').read
      data = JSON.parse(response)
      ip_address = data['ip']
    rescue
      ip_address = request.remote_ip
    end

Existe alguma possibilidade de corrigir isso em uma versão futura?

Parece que o # 24521 deve corrigir esse problema? Algum de vocês está disposto a levar adiante esse RP?

Esta página foi útil?
0 / 5 - 0 avaliações