2

我正在整合 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吗?

4

0 回答 0