No Rails, qual é a melhor maneira de obter o endereço IP do cliente se conectando ao servidor?
Aqui estão duas maneiras que eu encontrei:
request.remote_ip
request.env['HTTP_X_REAL_IP']
fonte
No Rails, qual é a melhor maneira de obter o endereço IP do cliente se conectando ao servidor?
Aqui estão duas maneiras que eu encontrei:
request.remote_ip
request.env['HTTP_X_REAL_IP']
Eu usaria o request.remote_ip
que é simples e funciona. Algum motivo para você precisar de outro método?
Veja: Obtenha o endereço IP real no ambiente de desenvolvimento local do Rails para outras coisas que você pode fazer com os ips do servidor cliente.
request.remote_ip
é uma interpretação de todas as informações de endereço IP disponíveis e fará uma estimativa. Se você acessar as variáveis diretamente, assume a responsabilidade de testá-las na ordem de precedência correta. Os proxies introduzem vários cabeçalhos que criam variáveis de ambiente com nomes diferentes.
Obtenha o IP do cliente usando o comando:
request.remote_ip
Eu achei request.env['HTTP_X_FORWARDED_FOR']
muito útil também nos casos em que request.remote_ip
retorna127.0.0.1
Para qualquer pessoa interessada e usando trilhos mais recentes e a gema Devise: a opção "rastreável" do Devise inclui uma coluna para current / last_sign_in_ip na tabela de usuários.