Can anyone please help how to get client IP and also server IP using Ruby on Rails?
The answer is to use $_SERVER variable. For example, $_SERVER["REMOTE_ADDR"] would return the client's IP address.
For getting the IP Address we have to include use Illuminate\Http\Request; in the controller and then add the code of the below pre tag. It will give the IP address of the network. $clientIP = \Request::ip(); dd($clientIP);
From your controller:
request.remote_ip
If you are using apache in front of a mongrel, then remote_ip will return the source address of the request, which in this case will be local host because the Apache web server is making the request, so instead put this in your controller:
@remote_ip = request.env["HTTP_X_FORWARDED_FOR"]
To get the server IP see:
Getting the Hostname or IP in Ruby on Rails
Thanks: karim79 and Titanous.
Write the code in Controller
For Client IP:
request.remote_ip @remote_ip = request.env["HTTP_X_FORWARDED_FOR"]
For Server IP:
require 'socket' def local_ip orig, Socket.do_not_reverse_lookup = Socket.do_not_reverse_lookup, true # turn off reverse DNS resolution temporarily UDPSocket.open do |s| s.connect '64.233.187.99', 1 s.addr.last end ensure Socket.do_not_reverse_lookup = orig end
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With