Rails доступ и манипулирование user_ip_address - PullRequest
0 голосов
/ 04 ноября 2011

Я хочу проверить, сколько раз ip-адрес устройства приходил на мой сайт (root to=>home#index), если адрес приходил на мой сайт более одного раза, тогда извините кусок кода (что угодно). Как мне это сделать с помощью rails?Другими словами, как мне получить доступ и установить переменную для хранения номера входа пользователя ip_address в index action? Корневая страница - home # index. Чтобы уточнить, что пользователь не должен быть зарегистрированным пользователем, я просто хочу отслеживать с помощью компьютераIP-адрес. Мне нужна помощь с закомментированными словами в действии индекса. Существует устройство current_sign_in_ip, но я не уверен, что это должно было решить этот проблемный сценарий, потому что я очень новичок в разработке и рельсах в целом. Спасибо вам большое!

контроллер

       class HomeController < ApplicationController

       def index
       #access user ip address
       #set a variable to increment number of times the address come to a site
       # if no_of_ip_login is_greater_than_1 #In other words if it is a returning user

       redirect_to :controller=>"home" ,:action=>"show"
       end

       end

1 Ответ

4 голосов
/ 04 ноября 2011

Вы также можете использовать

ip_addr = request.env['REMOTE_ADDR']

также:

request.remote_ip

Также хочу отметить, что если вы находитесь за балансировщиком нагрузки, REMOTE_ADDR может вернуть IP балансировщика нагрузки, а нефактический клиент.В этом случае вы обычно можете использовать что-то вроде:

ip_addr = request.env['X_FORWARDED_FOR']

Поэтому я рекомендовал request.remote_ip.Возвращает HTTP_CLIENT_IP или X_FORWARDED_FOR, если имеется, в противном случае REMOTE_IP.

...