Ответ 1
Try:
require 'socket'
ip=Socket.ip_address_list.detect{|intf| intf.ipv4_private?}
ip.ip_address if ip
Как получить собственный IP-адрес с Rails?
Когда я делаю это так, я получил: 127.0.0.1
@ip = request.remote_ip
Есть ли способ получить общедоступный IP-адрес?
Try:
require 'socket'
ip=Socket.ip_address_list.detect{|intf| intf.ipv4_private?}
ip.ip_address if ip
Я считаю, что request.env['SERVER_NAME']
работает, если вы хотите отразить адрес базы сервера назад
Попробуйте следующее:
request.env['REMOTE_ADDR']
Вызовите страницу, используя свой IP-адрес, а не localhost. I.e, 192.168.2.9:3000
в случае среды разработки по умолчанию:
request.env['REMOTE_ADDR']
#=> 192.168.2.9
или
request.remote_ip
#=> 192.168.2.9
Поскольку ваш запрос является локальным для сервера, он возвращает адрес "localhost", т.е. 127.0.0.1
.
Если вы запросите его у компьютера, размещенного в Интернете, он предоставит вам статический IP-адрес удаленного сервера.
Если вы хотите статический IP-адрес собственного интернета, посетите http://ping.eu, и вы сможете увидеть свой публичный IP-адрес.