Quelqu'un peut-il s'il vous plaît aider à obtenir l'adresse IP du client et également celle du serveur en utilisant Ruby on Rails?
Merci: karim79 et Titanous.
Écrivez le code dans le contrôleur
Pour IP client:
request.remote_ip
@remote_ip = request.env["HTTP_X_FORWARDED_FOR"]
Pour IP 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
Depuis votre contrôleur:
request.remote_ip
Si vous utilisez Apache devant un bâtard, remote_ip renverra l'adresse source de la demande, qui dans ce cas sera l'hôte local car le serveur Web Apache fait la demande, alors placez-la à la place dans votre contrôleur:
@remote_ip = request.env["HTTP_X_FORWARDED_FOR"]
Pour obtenir l'IP du serveur, voir: