首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby应用程序认为客户端的IP地址总是相同的

Ruby应用程序认为客户端的IP地址总是相同的
EN

Stack Overflow用户
提问于 2014-10-09 11:03:26
回答 1查看 689关注 0票数 0

辛纳特拉应用程序。

代码语言:javascript
复制
<%= request.ip %>

如果从本地服务器查看,则给出127.0.0.1 IP地址。

如果从Heroku服务器查看83.245.226.68 IP地址,则不管来自哪个设备。

因此,我猜它返回的是服务器的IP地址,而不是客户端的IP地址。那么如何才能找到客户端的IP地址呢?我是不是误解了request.ip方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-10 10:17:24

当Rack HTTP Server前面的HTTP Server (例如用于负载平衡、ssl等)没有将客户端IP地址转发到Rack HTTP Server时,就会发生这种情况。在这种情况下,您将获得HTTP的IP地址。

这可以在HTTP服务器(如Nginx和Apache )上配置,您可以在request.ip中获得客户端IP地址。

据我所知,Heroku这样做的方式是,客户端ip地址位于一个名为“x转发-for”的标题中,这是一个以逗号分隔的IP地址列表,最后一个元素是客户机IP。

辛纳特拉:

代码语言:javascript
复制
env['HTTP_X_FORWARDED_FOR'].split(',').last

Rails:

代码语言:javascript
复制
request.headers['x-forwarded-for'].split(',').last
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26276775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档