Domanda

Qualcuno può aiutare come ottenere l'IP client e anche l'IP del server utilizzando Ruby on Rails?

È stato utile?

Soluzione 2

Grazie: karim79 e Titanous.

Scrivi il codice in Controller

Per IP client:

request.remote_ip

@remote_ip = request.env["HTTP_X_FORWARDED_FOR"]

Per IP server:

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

Altri suggerimenti

Dal controller:

request.remote_ip

Se stai usando apache davanti a un ibrido, remote_ip restituirà l'indirizzo di origine della richiesta, che in questo caso sarà host locale perché il server web Apache sta effettuando la richiesta, quindi inseriscilo nel tuo controller :

@remote_ip = request.env["HTTP_X_FORWARDED_FOR"]

Per ottenere l'IP del server, vedere:

Ottenere il nome host o IP in Ruby on Rails

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top