Rails: Отримайте IP-адресу клієнта


172

У Rails, який найкращий спосіб отримати ip-адресу клієнта, який підключається до сервера?

Ось два способи я знайшов:

request.remote_ip
request.env['HTTP_X_REAL_IP']

Відповіді:


318

Я просто використав би request.remote_ipце просто, і це працює. З будь-якої причини вам потрібен інший метод?

Див.: Отримайте реальну IP-адресу в локальному середовищі розробки Rails для деяких інших речей, які ви можете зробити з ip-серверами клієнтського сервера.


44

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


7

Отримати клієнтський ip за допомогою команди:

request.remote_ip

2

Я вважаю request.env['HTTP_X_FORWARDED_FOR']дуже корисним також у випадках, коли request.remote_ipповертається127.0.0.1


0

Для всіх, хто цікавиться та використовує новіші рейки та дорогоцінний камінь: Параметр "відстежувати" Devise включає стовпчик для поточного / last_sign_in_ip у таблиці користувачів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.