Rails:获取客户端IP地址

发布于 2024-10-08 04:26:59 字数 138 浏览 3 评论 0原文

在 Rails 中,获取连接到服务器的客户端 IP 地址的最佳方法是什么?

这是我发现的两种方法:

request.remote_ip
request.env['HTTP_X_REAL_IP']

In Rails, what's the best way to get the ip address of the client connecting to the server?

Here are two ways I've found:

request.remote_ip
request.env['HTTP_X_REAL_IP']

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

风渺 2024-10-15 04:26:59

我只会使用简单且有效的 request.remote_ip 。您有什么理由需要其他方法吗?

请参阅:在本地Rails开发环境中获取真实IP地址
对于其他一些事情,您可以使用客户端服务器 IP 执行此操作。

I would just use the request.remote_ip that's simple and it works. Any reason you need another method?

See: Get real IP address in local Rails development environment
for some other things you can do with client server ip's.

莫多说 2024-10-15 04:26:59

request.remote_ip 是对所有可用 IP 地址信息的解释,它将做出最佳猜测。如果您直接访问变量,您将承担以正确的优先顺序测试它们的责任。代理引入了许多标头,这些标头创建具有不同名称的环境变量。

request.remote_ip is an interpretation of all the available IP address information and it will make a best-guess. If you access the variables directly you assume responsibility for testing them in the correct precedence order. Proxies introduce a number of headers that create environment variables with different names.

高速公鹿 2024-10-15 04:26:59

使用命令获取客户端IP:

request.remote_ip

Get client ip using command:

request.remote_ip
抚笙 2024-10-15 04:26:59

我发现 request.env['HTTP_X_FORWARDED_FOR']request.remote_ip 返回 127.0.0.1 的情况下也非常有用

I found request.env['HTTP_X_FORWARDED_FOR'] very useful too in cases when request.remote_ip returns 127.0.0.1

八巷 2024-10-15 04:26:59

对于任何感兴趣并使用较新的 Rails 和 Devise gem 的人:Devise 的“可跟踪”选项包括用户表中的 current/last_sign_in_ip 列。

For anyone interested and using a newer rails and the Devise gem: Devise's "trackable" option includes a column for current/last_sign_in_ip in the users table.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文