Liferay portlet 如何取得客户端的IP地址(portal get remote IP)
来源:互联网 发布:小米手机数据恢复软件 编辑:程序博客网 时间:2024/05/22 06:17
Liferay portlet 如何取得客户端的IP地址(portal get remote IP)
方案一
Liferay 屏蔽了获取remoteHost 方法,但request对象是保留在私有域
java.lang.reflect.Field f = request.getClass().getDeclaredField("_request");
f.setAccessible(true);//设置该变量可视
HttpServletRequest httpServletRequest = (HttpServletRequest) f.get(request); //拿到Request
/* 以下处理用代理时的情况 */
String ip = httpServletRequest.getHeader("x-forwarded-for");
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = httpServletRequest.getHeader("Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = httpServletRequest.getHeader("WL-Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = httpServletRequest.getRemoteAddr();
}
System.out.println("ip:="+ip);
方案二
HttpServletRequest httpServletRequest = com.liferay.portal.util.PortalUtil.getHttpServletRequest(renderRequest);
String ip = httpServletRequest.getHeader("x-forwarded-for");
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = httpServletRequest.getHeader("Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = httpServletRequest.getHeader("WL-Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = httpServletRequest.getRemoteAddr();
}
System.out.println("ip:="+ip);
- Liferay portlet 如何取得客户端的IP地址(portal get remote IP)
- Liferay portlet 如何取得客户端的IP地址(portal get remote IP)
- 如何取得客户端的IP地址
- 取得客户端的 IP 地址
- Flex取得客户端的IP地址
- Flex取得客户端的IP地址
- java取得客户端的IP地址
- PHP取得客户端IP地址
- 取得真实客户端IP地址
- 如何取得客户段的ip地址
- Request如何取得客户端Ip
- Request.ServerVariables("REMOTE_ADDR") 来取得客户端的IP 地址
- java中request取得客户端的ip地址
- js代码获取IP地址的三种方法,通过js取得客户端的IP地址。
- [转]取得客户端的IP
- 取得IP地址的代码
- 如何获得客户端的ip地址
- 如何获得客户端的ip地址
- 几大科技公司的组织结构图
- hadoop wordcount运行实例
- itext5 生成pdf 使用总结
- jQuery 引起的学习。
- MySQL-Proxy
- Liferay portlet 如何取得客户端的IP地址(portal get remote IP)
- 用批处理实现Windows下子目录大小统计功能
- 迭代循环文件夹的处理方法
- zoj 2747 Paint the Wall
- JUnit4单元测试
- Android OpenGL学习笔记(二)之----三角形的绘制.
- struts spring 整合详解
- POSIX 线程安全 摘录
- iptables二层过滤机制详解