Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get real IP address in local Rails development environment

I have Rails 2.3.8, Ruby 1.8.7, Mongrel Web Server and MySQL database.

I am in the development mode and I need to find the real IP address

When I use request.remote_ip I am getting the IP as 127.0.0.1

I know I am getting 127.0.0.1 because I am developing on the local machine.. but is there a way to get the real ip-address even if I am on the local machine?

I am using these mentioned below in my controller and all I get is 127.0.0.1 with all of them in the view.

request.remote_ip request.env["HTTP_X_FORWARDED_FOR"] request.remote_addr request.env['REMOTE_ADDR'] 
like image 405
gkolan Avatar asked Oct 08 '10 05:10

gkolan


1 Answers

As far as I can see there is no standard method for getting the remote address of your local machine. If you need the remote address for (testing) your geocoding, I suggest adding 127.0.0.1 to your database table that matches IP addresses with locations.

As a last resort you could also hard code your remote address. E.g. like this:

class ApplicationController < ActionController::Base   def remote_ip     if request.remote_ip == '127.0.0.1'       # Hard coded remote address       '123.45.67.89'     else       request.remote_ip     end   end end  class MyController < ApplicationController   def index     @client_ip = remote_ip()   end end 
like image 174
Mischa Avatar answered Nov 10 '22 15:11

Mischa