如何获得客户端IP?

时间:2012-03-14 23:16:35

标签: scala playframework-2.0

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

2 个答案:

答案 0 :(得分: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。

答案 1 :(得分:7)

请在https://github.com/orefalo/play2-xforward

查看此Github项目

我从Play1获取代码并将其移植到Play2,它应该可以正常工作。

还在进行中......