出于安全考虑,有时需要通过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(使用前将#替换为@)