how to get the remote ip (requester) on grape-api rails application

3k views Asked by At

I have a working rails application with grape-gem working as an end point for some APIs in the application. I need to get the remote ip for the requester and return it back in the response. I could do that on regular controllers using

request.remote_ip

however, in grape calls, the 'request' is not a defined variable.

how can I get access to the remote ip on grape?

2

There are 2 answers

0
NARKOZ On BEST ANSWER

Use env hash:

env['REMOTE_ADDR']
0
New Alexandria On

The 'answer' by @zx1986 is the best / correct. REMOTE_ADDR is not safe, as outlined in this effort-post answer. The Grape API docs recommend using the direct remote_ip value (for ActionDispatch) in the request env, when the request helper is obscured, like in the case of Grape:

env["action_dispatch.remote_ip"]
# or
request.env["action_dispatch.remote_ip"]