59 votes

comment obtenir les adresses IP des clients et des serveurs à l'aide de Rails

Quelqu'un peut-il aider à obtenir l'adresse IP du client et du serveur à l'aide de Ruby on Rails?

85voto

karim79 Points 178055

À partir de votre contrôleur:

request.remote_ip

Si vous utilisez apache en face d'un chien bâtard, puis remote_ip sera de retour l'adresse de la source de la demande, qui dans ce cas sera l'hôte local parce que le serveur web Apache est en faisant la demande, de sorte qu'au lieu de mettre cela dans votre contrôleur:

@remote_ip = request.env["HTTP_X_FORWARDED_FOR"]

Pour obtenir l'adresse IP du serveur voir:

http://stackoverflow.com/questions/42566/getting-the-hostname-or-ip-in-ruby-on-rails

35voto

 Thanks: karim79 and Titanous
 

Écrivez le code dans le contrôleur

Pour l'IP client:

 request.remote_ip

@remote_ip = request.env["HTTP_X_FORWARDED_FOR"]
 

Pour l'IP du serveur:

 require 'socket'

def local_ip
  orig, Socket.do_not_reverse_lookup = Socket.do_not_reverse_lookup, true  # turn off reverse DNS resolution temporarily

  UDPSocket.open do |s|
    s.connect '64.233.187.99', 1
    s.addr.last
  end
ensure
  Socket.do_not_reverse_lookup = orig
end
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X