为了安全起见,有时需要通过IP来阻止用户。 就我而言,我想管理的(SQL)数据库中的IP黑名单。 我想我可以根据动作组成处理过滤器的一部分,但对于我需要的用户的IP。
所以,我怎么能得到用户的IP?
PS:在应用程序运行背后nginx的代理。
为了安全起见,有时需要通过IP来阻止用户。 就我而言,我想管理的(SQL)数据库中的IP黑名单。 我想我可以根据动作组成处理过滤器的一部分,但对于我需要的用户的IP。
所以,我怎么能得到用户的IP?
PS:在应用程序运行背后nginx的代理。
现在,您可以用播放2.0.2+: RequestHeader.remoteAddress()
Java的:
String ip = request().remoteAddress();
斯卡拉:
Action { request =>
val ip = request.remoteAddress()
}
如果您的播放! 应用程序是背后nginx的(或任何其他反向代理), request.remoteAddress()
将只返回你的nginx的主机的IP地址。 为了找回你应该在nginx的你proxy_pass配置以下客户端的真实IP:
location / {
proxy_pass http://play-app:9000;
proxy_set_header X-Real-IP $remote_addr;
}
这将添加客户端IP作为参数传递给头
DOC: Nginx的
然后你的游戏中! 应用程式,你会找回它是这样的:
request.headers.get("X-Real-IP") //In Java
request.headers.get("X-Real-IP") //In Scala
文件: Java的 , 斯卡拉