Kann mir bitte jemand helfen, wie man Client IP und auch Server IP mit Ruby on Rails bekommt?Wie bekomme ich Client IP und Server IP mit Rails?
Antwort
Danke: karim79 und Titanous.
Schreiben Sie den Code in Controller-
Für Client-IP:
request.remote_ip
@remote_ip = request.env["HTTP_X_FORWARDED_FOR"]
Für Server IP:
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
Von Ihrem Controller:
request.remote_ip
Wenn Sie Apache vor einem Mischlings verwenden, dann kehrt remote_ip die Quelladresse des Antrags, die in diesem Fall lokaler Host sein werden, da die Apache-Webserver die Anforderung stellt, so setzen diese stattdessen in Ihrem Controller:
@remote_ip = request.env["HTTP_X_FORWARDED_FOR"]
die Server-IP zu sehen bekommen:
Dies funktioniert, aber ich brauche sowohl Client-IP und auch Server IP zusammen –
Das liegt daran, dass Ihr Server die Anforderung an den Rails-Server weiterleitet. Sie müssen Ihren Front-Server (Apache oder was auch immer Sie haben mögen) einrichten, um auch die IP-Adresse der ursprünglichen Anfrage zu senden. Kannst du mehr Details über deine Konfiguration angeben? –
Danke Good Job Kumpel es funktioniert –
Was ist die Server-IP? Ist es der Client-Server? –
Wo wurde das Anfrageobjekt definiert? – user938363
Das Request-Objekt wird von Rails der Controller-Aktionsmethode zur Laufzeit zur Verfügung gestellt (wenn eine Browser-Anfrage erfolgt). – thekingoftruth