Dies ist eine wirklich einfache Frage, aber ich kann nirgends eine Erwähnung finden.Erhalten Sie die IP-Adresse des Kunden in Sinatra?
Wie bekomme ich die IP-Adresse des Kunden aus Sinatra?
get '/' do
"Your IP address is #{....}"
end
Dies ist eine wirklich einfache Frage, aber ich kann nirgends eine Erwähnung finden.Erhalten Sie die IP-Adresse des Kunden in Sinatra?
Wie bekomme ich die IP-Adresse des Kunden aus Sinatra?
get '/' do
"Your IP address is #{....}"
end
Sinatra bietet eine request
object, die die Schnittstelle zu den Clientanforderungsdaten ist, die Sie verwenden sollten.
Mit request.ip
ist die bevorzugte Methode der Client-IP-Adresse zu finden:
get '/' do
"Your IP address is #{request.ip}"
end
Es sollte darauf hingewiesen werden, dass 'Request # ip'-Methode stammt Rack, nicht aus Sinatra. – skalee
ich kam die Antwort sowieso .. so schreiben:
get '/' do
"Your IP address is #{ @env['REMOTE_ADDR'] }"
end
Sinatra die Rack::Request API verwendet, so können Sie eine Menge Dinge in sie verwenden.
Auch ein Link zu der Sinatra doc's.
Hm, die Rack :: Request-API erwähnt eine 'ip'-Methode, die auch' HTTP_X_FORWARDED_FOR' behandelt, gibt es eine Möglichkeit, diese von Sinatra aus aufzurufen? – dbr
sollten Sie nur # {@env ['HTTP_X_FORWARDED_FOR']} tun können. Ich habe das aber noch nie getestet, also bin ich nicht positiv. –
können Sie request.ip auch direkt ausführen. bekomme "/" zu tun; "Ihre IP: # {request.ip}"; Ende – bantic
Err, oh, es ist in '@env [ 'REMOTE_ADDR']' - ich '@ env.inspect' Ausgang geprüft hatte durch Suche nach "127.0.0.1", aber es zeigte die IPv6 ':: 1'-Adresse, also habe ich es verpasst ... Jeder kann das gerne posten, damit ich es ohne die 48 Stunden Wartezeit annehmen kann !: P) – dbr