How to get Rails Internal IP

I am using a Rails 4 application, when in production mode i am getting
same IP address for all the members of the same organisation. The
requirement is to get different IP address for each member so as to
uniquely identify each system.

request.remote_ip
request.env[‘HTTP_X_REAL_IP’]
request.env[“HTTP_X_FORWARDED_FOR”]

All these fetches me the same IP for each system. How can i uniquely
identify each system? Please help.

Thanks and Regards,
Toby

On Sat, Feb 13, 2016 at 2:14 AM, Toby J. [email protected] wrote:

I am using a Rails 4 application, when in production mode i am getting
same IP address for all the members of the same organisation.

What does the “same IP address” belong to?

What app server are you using? Do you have a proxy in front of it
(e.g. nginx, Apache httpd)? If so, show the relevant configuration.


Hassan S. ------------------------ [email protected]

twitter: @hassan
Consulting Availability : Silicon Valley or remote

If this is an application on the Internet, it is perfectly possible that
you will see one IP, an most organisations traffic is natted these days

I guess you could use some form of JavaScript trickery to retrieve
information from the browser instance but not sure how accurate it would
be

Depends on your use case I guess, but why not set a cookie for each
visitor and check that way

On Saturday, 13 February 2016 05:15:29 UTC-5, Ruby-Forum.com User wrote:

All these fetches me the same IP for each system. How can i uniquely
identify each system? Please help.

remote_ip is calculated from the other two (and a few additional
headers). The calculation may sometimes misunderstand the network
topology,
so if you’re getting an IP that’s part of your infrastructure (load
balancers / proxies / etc) for every client it may be worth looking
into.

Otherwise, your options are very limited. One of the purposes of
organization-level NAT is to avoid leaking internal addresses / machine
identities to the outside (for security). I’ve read of a way to use the
Javascript WebRTC API to get the client’s LAN address, but I wouldn’t
recommend depending on that for anything like licensing or authorization
since any data coming from JS is trivially spoofable.

I’d recommend that you push back on whoever / whatever is imposing this
requirement to figure out what the intent is. You may need to find an
alternative way to achieve that goal.

–Matt J.

Thanks, and will try using cookies first.