Rails: получить IP-адрес клиента - PullRequest
159 голосов
/ 17 декабря 2010

В Rails, как лучше всего получить ip-адрес клиента, подключающегося к серверу?

Вот два способа, которые я нашел:

request.remote_ip
request.env['HTTP_X_REAL_IP']

Ответы [ 5 ]

296 голосов
/ 17 декабря 2010

Я бы просто использовал request.remote_ip, это просто и работает.По какой-либо причине вам нужен другой метод?

См .: Получите реальный IP-адрес в локальной среде разработки Rails для некоторых других вещей, которые вы можете делать с ip клиентского сервера.

42 голосов
/ 17 декабря 2010

request.remote_ip - это интерпретация всей доступной информации об IP-адресе, и она сделает правильное предположение.Если вы обращаетесь к переменным напрямую, вы берете на себя ответственность за их проверку в правильном порядке приоритета.Прокси-серверы вводят несколько заголовков, которые создают переменные окружения с разными именами.

7 голосов
/ 11 января 2017

Получить ip клиента с помощью команды:

request.remote_ip
0 голосов
/ 01 сентября 2018

Я нашел request.env['HTTP_X_FORWARDED_FOR'] очень полезным, когда request.remote_ip возвращает 127.0.0.1

0 голосов
/ 08 апреля 2018

Для всех, кто интересуется и использует более новые рельсы и опцию Devise: опция «trackable» Devise включает столбец current / last_sign_in_ip в таблице пользователей.

...