Playframework从服务器获取客户端IP,但不从cookie获取

时间:2014-11-13 09:33:47

标签: java ip netty playframework-2.2 server

我想获取客户端IP。 基于该IP,我想提供对应用程序的访问权限。 目前,我使用此代码从cookie获取IP:

/**
 * Gets the ip.
 *
 * @return the ip
 */
public static String getIP() {
    return Request play.mvc.Controller.request().remoteAddress();
}

不安全,因为用户可以轻松更改它。

所以我想从服务器连接中获取物理IP地址,而不是从cookie获取此地址。

我怎么能做到这一点?请帮忙。

1 个答案:

答案 0 :(得分:1)

这不是一个cookie ......无论如何,我能想到的最简单的解决方案是......将你的应用程序隐藏在一些轻型HTTP服务器下作为代理并使用其访问限制规则,好处:

  • 轻型服务器不应该是一个瓶颈,因为它专门用于这项工作
  • 它可能知道黑客试图绕过限制的技巧和黑客
  • 拒绝IP甚至没有进入您的应用,因此您节省了资源
  • 一般来说有助于解决其他几项任务

最后,服务器以特殊方式处理转发的IP,即当您使用curl显示标题时,Apache将转发为列表:

1.2.3.4,123.123.123.123

所以你无论如何都可以抓到糟糕的IP ......