我需要将访问者的IP地址存储到我们的数据库中,这是我尝试实现的方法:
@ip = request.remote_ip
@ip = request.env['REMOTE_ADDR']
但在这两种情况下,@ip
变量都存储了值为127.0.0.1,即使我将应用部署到 Amazon EC2 实例时也是如此。当我检查http://www.whatismyip.com/时,它显示我的IP为109.175.XXX.X。
因此,为什么 Ruby 变量总是显示 127.0.0.1 地址?如何获得真实的IP?
编辑: 以下是输出结果:
request.env['HTTP_X_FORWARDED_FOR'] =>
request.remote_ip => 127.0.0.1
request.env['REMOTE_ADDR'] => 127.0.0.1
request.ip => 127.0.0.1
我原以为问题只出现在我的电脑上,但我把链接发给了三个朋友,他们都看到了相同的 IP 地址:127.0.0.1。
我已经花了一整天时间来解决这个问题,但还没有成功。
谢谢