midware
作者midware·2010-12-11 13:19
·

apache+weblogic 获取客户IP

字数 841阅读 3024评论 1赞 1
在Apache+WebLogic整合系统中,Apache会对request对象进行再包装,附加一些WLS要用的头信息。这种情况下,直接用request.getRemoteAddr()是无法取到真正的客户IP的。

  Apache会增加下列头信息:

  X-Forwarded-For=211.161.1.239

  WL-Proxy-Client-IP=211.161.1.239

  所取得客户的IP需要这样:

  String IP=request.getHeader("X-Forwarded-For");

  if(IP == null || IP.length() == 0) {

  IP=request.getHeader("WL-Proxy-Client-IP");

  }

  if(IP == null || IP.length() == 0) {

  IP=request.getRemoteAddr();

  }

  

  或者也可通过WebLogic的设置直接能过request.getRemoteAddr();取得客户的IP。

  在WebLogic console

  domain->servers->servername->General ->Advanced Options ->

  WebLogic Plug-In Enabled

  Specifies whether this server uses the proprietary WL-Proxy-Client-IP header. (This is needed only when WebLogic plugins are configured.)

  但是如果Apache设置的是反向代理这样就不行了,因为Apache不会向heaer写入WL-Proxy-Client-IP的信息。只能通过第一种方法解决。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

1

添加新评论1 条评论

lixin199036061lixin199036061网站架构师苏州新宇软件
2011-09-27 08:18
学习了
Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广