如何获得客户端IP?

Teo*_*zon 24 scala playframework-2.0

虽然这听起来很愚蠢,但我还是找不到在Play 2.0中获取客户端IP的方法.它在1.2.x中可用Http.Request.remoteAddress,但是2.0(我主要检查了Scala API,但我也快速检查了Java),似乎只提供了有关请求的服务器端的信息play(.api).mvc.Request.有什么我想念的吗?我现在能想到的最接近的黑客攻击是将它设置在反向代理后面然后进行检查X-Forwarded-For,但这在开发中并不是很好.

Mar*_*ijn 13

编辑:回到这个答案,这是在playframework 2.0.2中添加的:请参阅https://groups.google.com/forum/#!msg/play-framework/Z97GQ2VnR5M/T-STGaeuN68J%5B1-25上的发布公告 %5D,更重要的是http://www.playframework.org/documentation/api/2.0.2/scala/index.html#play.api.mvc.Request上的API文档

如你所见,现在有支持 Request.remoteAddress

原版的:

目前在跟踪器中存在一个错误:https://play.lighthouseapp.com/projects/82401/tickets/256-add-back-requestheaderremoteaddress

我认为攻击play2.0库以包含链接补丁是目前最好的选择.它可能仍然比使用代理更简洁,其唯一目的是添加XFF头,并使用它们来确定IP.

  • 实际上,我发布了这个,我是那个制作补丁的人. (2认同)

Oli*_*alo 8

请通过https://github.com/orefalo/play2-xforward查看此Github项目

我从Play1获取代码并将其移植到Play2,它应该工作相同.

还在进行中......

  • 顺便说一下,谢谢-1试图解决你的问题! (5认同)