如何在 PlayFramework2 中获取用户的 IP?

2023-12-12

出于安全考虑,有时需要通过IP来屏蔽用户。就我而言,我想在 (SQL) 数据库中管理 IP 黑名单。我想我可以根据操作组合来处理过滤器部分,但为此我需要用户的 IP。

那么,如何获取用户的IP呢?

PS:应用程序在 nginx 代理后面运行。


如果你玩!应用程序位于 nginx(或任何其他反向代理)后面,request.remoteAddress()只会返回您的 nginx 主机的 IP 地址。为了检索客户端的真实 IP,您应该在 nginx 的 proxy_pass 配置中包含以下内容:

location / {
  proxy_pass        http://play-app:9000;
  proxy_set_header  X-Real-IP  $remote_addr;
}

这会将客户端 IP 作为参数添加到标头中

doc: Nginx

然后在您的 Play 中!应用程序你会像这样检索它:

request.headers.get("X-Real-IP") //In Java
request.headers.get("X-Real-IP") //In Scala

doc: Java, Scala

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 PlayFramework2 中获取用户的 IP? 的相关文章

随机推荐

  • Gem::LoadError:尝试在 Heroku 上部署时 - Rails 4

    我正在尝试将一个应用程序 只是 Rails 教程中的一个简单应用程序 部署到 heroku 但它一直给我相同的错误消息 我使用命令 git push heroku master 一开始好好的 然后突然出现这个错误 gt Preparing
  • python - 使用键函数对序列进行排序[重复]

    这个问题在这里已经有答案了 我不清楚以下内容是如何工作的 In 1 student tuples john A 15 jane B 12 dave B 10 In 2 sorted student tuples key lambda stu
  • 在二进制文件中写入/读取字符串 - C++

    我搜索了类似的帖子 但找不到可以帮助我的东西 我试图首先写入包含字符串的字符串长度的整数 然后将该字符串写入二进制文件中 但是 当我从二进制文件读取数据时 我读取了 value 0 的整数 并且我的字符串包含垃圾 例如 当我输入 asdfg
  • Symfony Doctrine 连接包装器

    我已经在 symfony2 中实现了一个连接包装器来根据子域连接到数据库 我按照问题的说明进行操作Symfony 2 多个动态数据库连接 它工作正常 但是当我尝试更新架构时 symfony 选择我在配置文件中的数据库名称 dinamic d
  • 为什么某些浏览器似乎要求 JSON 数据使用 UTF-8 字符集才能显示?

    所以我看到了A 正确的 JSON 内容类型是什么 application json也JSON 使用什么内容类型标头 application json charset utf 8 还是 application json and 内容类型 ap
  • 用于选择功能的 ngrx 参数

    有没有办法将参数传递给 ngrx 选择函数 以下是我的用例 我正在维护商店中的评论列表 我写了一个组件来代表一条评论 因此 一个 CommentComponent 知道组件对象的 id 每个评论都会有像 likeedBy reportedB
  • 检查 C++0x 算法添加的可用性

    我试图找出给定的实现支持算法头中的哪些添加 gcc 和 MSVC 就足够了 简单的方法是按照与核 心功能相同的方式进行操作 检查编译器版本并定义宏 如果支持语言功能 不幸的是 我找不到显示任一编译器版本号的列表 仅仅检查通用 C 0x 宏
  • Objective-C 中的 Swift 枚举关联值

    有没有办法在 Objective C 中使用新的 Swift3 枚举和关联值 如果我开发一个库并希望为 Swift3 用户提供方便的 API 有没有办法在 Objective C 中声明 桥接 Swift3 枚举与关联值 恐怕不可能 苹果有
  • 检查单选按钮是否通过键盘或鼠标更改

    是否可以知道如何选择单选按钮 即用户是否使用键盘或鼠标单击单选按钮 没有跨浏览器解决方案来检测 真正的鼠标单击 与 键盘触发的单击事件 理想情况下 我们会检查鼠标事件 button价值 不幸的是 只有 IE11 和 Edge 能够正确记录键
  • 如何解决打算通过 LAN 托管的网站的自签名 SSL 证书问题

    我的软件旨在在 Raspberry Pi 上运行 安装我的软件后 用户可以从 LAN 上的任何设备导航到在其 Raspberry Pi 上运行的我的软件托管的网页 我希望我的用户不必担心生成 SSL 证书等 只需在他们的 Raspberry
  • 如何模拟返回带有最小起订量的 int 的方法

    我有一个类可以检索一些内容 并且它有一个方法在检索之前需要一些输入 过滤器 其中一个 输入 调用另一个方法 该方法基本上返回一个 int 我如何使用最小起订量来模拟它 这是一个例子 namespace MyNamespace public
  • 如何绕过RStudio控制台字符串长度上限?

    我刚刚开始学习 R 我正在尝试编写一个将 mRNA 字符串翻译为蛋白质序列的函数 希望有更多经验的人可以很容易地帮助我 我的函数似乎在较短的字符串上工作得很好 但是当我在长 RNA 序列上尝试它时 控制台只打印一个新行 在函数调用之后 没有
  • 将数据帧列转换为二进制

    My crm数据框包含 Reconciled 列 其中数字为 0 到 130 我想将此列转换为 0 或 1 如果值为0 则保留0 否则更改为1 crm Reconciled crm Reconciled where crm Reconcil
  • 如何使用 RegEx 在 VBA 中匹配简单的数字模式 [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 询问代码的问题必须对所解决的问题表现出最低限度的了解 包括尝试的解决方案 为什么它们不起作用以及预期结果 也可以看看 Stack Overflow 问题清单 有关您编写的代码的问题必
  • 将行转置/透视为列并求和

    这是我的查询 SELECT FROM requirementRange PeakRange DaysOfReq列是 nvarchar 数据类型并且Total是 INT 数据类型 表格如下 PeakRange DaysOfReq Total
  • 当重定向未知时为 HttpWebRequest.Credentials 构建 CredentialCache

    我最近问了一个question关于服务器返回重定向时的 NetworkCredential 和 HttpWebRequest Credentials 我确定构建 NetworkCredential 实例的 CredentialCache 适
  • 禁止 ASP.NET Web API 上具有空值的属性

    我创建了一个将由移动应用程序使用的 ASP Net WEB API 项目 我需要响应 json 来省略 null 属性 而不是将它们返回为property null 我怎样才能做到这一点 In the WebApiConfig config
  • 在 haskell-pipes 中分叉流流

    我在使用 haskell pipes 引导流通过管道时遇到问题 基本上 我分析了一堆文件 然后我必须 以人性化的方式将结果打印到终端 将结果编码为 JSON 所选路径取决于命令行选项 在第二种情况下 我必须输出一个左括号 然后每个传入值后跟
  • AngularJS:使用 jQuery 更改时,ng-model 绑定不会更新

    这是我的 HTML
  • 如何在 PlayFramework2 中获取用户的 IP?

    出于安全考虑 有时需要通过IP来屏蔽用户 就我而言 我想在 SQL 数据库中管理 IP 黑名单 我想我可以根据操作组合来处理过滤器部分 但为此我需要用户的 IP 那么 如何获取用户的IP呢 PS 应用程序在 nginx 代理后面运行 如果你