kat*_*tie 0 ruby-on-rails request devise ruby-on-rails-3 ruby-on-rails-3.1
我想检查设备 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
Run Code Online (Sandbox Code Playgroud)
您可以使用
ip_addr = request.env['REMOTE_ADDR']
Run Code Online (Sandbox Code Playgroud)
还:
request.remote_ip
Run Code Online (Sandbox Code Playgroud)
还想提一下,如果您位于负载均衡器后面,则 REMOTE_ADDR 可能会返回负载均衡器的 IP,而不是实际客户端的 IP。在这种情况下,您通常可以使用如下内容:
ip_addr = request.env['X_FORWARDED_FOR']
Run Code Online (Sandbox Code Playgroud)
所以我推荐request.remote_ip。如果存在,则返回 HTTP_CLIENT_IP 或 X_FORWARDED_FOR,否则返回 REMOTE_IP。
| 归档时间: |
|
| 查看次数: |
278 次 |
| 最近记录: |