简体   繁体   English

在中间件Localhost中获取客户端IP

[英]Get client IP inside Middleware Localhost

Can anyone help me. 谁能帮我。 I want to know if there is any way to get the client IP in a middleware that I created. 我想知道是否有任何方法可以在我创建的中间件中获取客户端IP。

I've tried: 我试过了:

env["REMOTE_ADDR"]
env["HTTP_X_FORWARDED_FOR"]

and none of these returns nothing. 这些都不返回任何东西。

I have already entered my middleware after them all: 所有这些之后,我已经进入了中间件:

in my application.rb 在我的application.rb中

config.middleware.insert_after ActionDispatch :: Head, "MyMiddleware".

Please can anyone help me? 有人可以帮我吗?

Thanks. 谢谢。

request.env request.env

request.env
=> {"GATEWAY_INTERFACE"=>"CGI/1.1",
 "PATH_INFO"=>"/events/1",
 "QUERY_STRING"=>"",
 "REMOTE_ADDR"=>"127.0.0.1",
 "REMOTE_HOST"=>"127.0.0.1",
 "REQUEST_METHOD"=>"GET",
 "REQUEST_URI"=>"http://localhost:3000/events/1",
 "SCRIPT_NAME"=>"",
 "SERVER_NAME"=>"localhost",
 "SERVER_PORT"=>"3000",
 "SERVER_PROTOCOL"=>"HTTP/1.1",
 "SERVER_SOFTWARE"=>"WEBrick/1.3.1 (Ruby/2.2.0/2014-09-17)",
 "HTTP_HOST"=>"localhost:3000",
 "HTTP_USER_AGENT"=>"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:32.0) Gecko/20100101 Firefox/32.0",
 "HTTP_ACCEPT"=>"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
 "HTTP_ACCEPT_LANGUAGE"=>"en-US,en;q=0.5",
 "HTTP_ACCEPT_ENCODING"=>"gzip, deflate",
 "HTTP_DNT"=>"1",
 "HTTP_COOKIE"=>"nameofapp-example_session=Qnh5ZMQVN5V2821f",
 "HTTP_CONNECTION"=>"keep-alive",
 "HTTP_CACHE_CONTROL"=>"max-age=0",
...

Each of these are keys you can use. 这些都是可以使用的键。 In your case it would be one of these two 在您的情况下,这将是两者之一

request.env["REMOTE_ADDR"]
request.env["REMOTE_HOST"]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM