Rails: `request.remote_ip` semble renvoyer la mauvaise adresse IP

Créé le 18 oct. 2012  ·  3Commentaires  ·  Source: rails/rails

Le dernier commit au middleware IP distant semble avoir délibérément inversé l'algorithme qui sélectionne l'IP distante dans une liste de proxys. Malheureusement, l'algorithme précédent (que j'ai écrit et utilisé en production avec quelques centaines de milliers de clients :P) est celui qui est en accord avec les spécifications écrites sur la façon dont X-Forwarded-For est censé fonctionner.

tl; dr plz pour annuler cette partie du commit, j'aimerais pouvoir mettre à niveau Rails et avoir toujours remote_ip renvoyer la bonne adresse IP.

actionpack

Commentaire le plus utile

C'est toujours un problème. À partir des messages de débordement de pile : 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

Toutes ces questions pointent vers l'utilisation de request.remote_ip . Mais cela renvoie parfois une adresse IP incorrecte. J'utilise le code suivant pour obtenir une adresse IP correcte.

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

Y a-t-il une possibilité de corriger cela dans une future version ?

Tous les 3 commentaires

C'est toujours un problème. À partir des messages de débordement de pile : 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

Toutes ces questions pointent vers l'utilisation de request.remote_ip . Mais cela renvoie parfois une adresse IP incorrecte. J'utilise le code suivant pour obtenir une adresse IP correcte.

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

Y a-t-il une possibilité de corriger cela dans une future version ?

On dirait que #24521 est de résoudre ce problème ? L'un d'entre vous sera-t-il prêt à faire avancer ces relations publiques ?

Cette page vous a été utile?
0 / 5 - 0 notes