В Rails, как лучше всего получить ip-адрес клиента, подключающегося к серверу?
Вот два способа, которые я нашел:
request.remote_ip request.env['HTTP_X_REAL_IP']
Я бы просто использовал request.remote_ip, это просто и работает.По какой-либо причине вам нужен другой метод?
request.remote_ip
См .: Получите реальный IP-адрес в локальной среде разработки Rails для некоторых других вещей, которые вы можете делать с ip клиентского сервера.
request.remote_ip - это интерпретация всей доступной информации об IP-адресе, и она сделает правильное предположение.Если вы обращаетесь к переменным напрямую, вы берете на себя ответственность за их проверку в правильном порядке приоритета.Прокси-серверы вводят несколько заголовков, которые создают переменные окружения с разными именами.
Получить ip клиента с помощью команды:
Я нашел request.env['HTTP_X_FORWARDED_FOR'] очень полезным, когда request.remote_ip возвращает 127.0.0.1
request.env['HTTP_X_FORWARDED_FOR']
127.0.0.1
Для всех, кто интересуется и использует более новые рельсы и опцию Devise: опция «trackable» Devise включает столбец current / last_sign_in_ip в таблице пользователей.