首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取Rails中的客户端IP地址并输出到视图

获取Rails中的客户端IP地址并输出到视图
EN

Stack Overflow用户
提问于 2017-05-10 20:03:48
回答 2查看 3.5K关注 0票数 1

在Ruby on Rails中,如何获取客户端的IP地址?我希望当用户访问某个页面时,Rails会获取他们的ip地址并将其显示在屏幕上。

在我的控制器中,我尝试过:

代码语言:javascript
运行
复制
request.remote_ip

但它返回的是据我所知是IPv6的::1。我想要获取客户端的IPv4地址。我如何才能做到这一点?我只需要为每个客户端做一次,因为我只检查他们用来访问我的页面的第一个设备的ip地址。

EN

回答 2

Stack Overflow用户

发布于 2017-05-10 20:41:23

您可以使用以下任一方法

无论是本地代理ip地址(本地主机地址)还是not.

  • request.remote_ip,返回ip的
  1. request.ip更智能,并获取本地代理之外的客户端的ip地址,这是对所有可用IP地址信息的最佳解释,它将做出最佳猜测。

(request.remote_ip)确定始发IP地址。REMOTE_ADDR是标准的,但如果用户在代理后面,则会失败。HTTP_CLIENT_IP和/或HTTP_X_FORWARDED_FOR是由代理设置的,因此如果REMOTE_ADDR是代理,请检查它们。在多个链接代理的情况下,HTTP_X_FORWARDED_FOR可以是逗号分隔的列表;最后一个不受信任的地址是原始IP。

票数 3
EN

Stack Overflow用户

发布于 2017-05-10 20:07:50

您确定::1是不够的吗?这就是本地主机;如果您将站点发布到需要第3层传输的任何地方,它应该分别呈现适当的IPv4或IPv6地址。

简而言之,如果禁用本地IPv6堆栈,将呈现127.0.0.1。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43891971

复制
相关文章

相似问题

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