我正在整合 vbulletin 论坛和我的 rails 应用程序。
我需要获取请求 ip 来创建一些哈希值。我发现了一些文章,其中包含如何使用 php$_SERVER['REMOTE_ATTR']
来获取这个 ip 的提示,它应该request.env['REMOTE_ATTR']
在 Rails 中。
不幸的是,我在生产和开发上都得到127.0.0.1
了,所以我检查了一下request.env
,发现真正的请求 ip 在'HTTP_X_FORWARDER'
and中'action_dispatch.remote_ip'
。
现在在一个视图中,我尝试同时输出:
<%= request.env['action_dispatch.remote_ip']%>
输出正确的ip。
<%= request.env['HTTP_X_FORWARDER']%>
输出空白。
<%= debug request.env %>
向我展示了该'HTTP_X_FORWARDER'
值是请求的 IP 地址,这很奇怪。
你知道为什么REMOTE_ADDR
总是127.0.0.1
,并且'HTTP_X_FORWARDER'
输出空白吗?可以'action_dispatch.remote_ip'
用来获取这个请求ip吗?