当前位置:  开发笔记 > 编程语言 > 正文

在GWT和Google App Engine中获取客户端IP地址

如何解决《在GWT和GoogleAppEngine中获取客户端IP地址》经验,为你挑选了2个好方法。

我需要在GWT/GAE(Java)应用程序中捕获客户端的IP地址.由于GAE不支持完整的java.net API,我无法执行下面的代码段代码.任何人都可以提出可靠的方法来达到同样的目

for (final Enumeration en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
    final NetworkInterface intf = en.nextElement();
    for (final Enumeration enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
        final InetAddress ip = enumIpAddr.nextElement();
        if (!ip.isLoopbackAddress() && !ip.isLinkLocalAddress() && !ip.isAnyLocalAddress()) {
                return ip.getHostAddress().toString();
        }
    }
}

对于Python版本,我们可以:

os.environ['REMOTE_ADDR'] 

要么

String ip = self.request.remote_addr;

但是什么是Java等价物?



1> Bostone..:

好的,我知道了.在你的Servlet应该扩展RemoteServiceServlet这样做:

final String ip = getThreadLocalRequest().getRemoteAddr();



2> amanas..:

例如,如果您在代理服务器后面,如果您使用ProxyPass和ProxyPassReverse,您会发现这有用:

this.getThreadLocalRequest().getHeader("X-FORWARDED-FOR") 

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有