5

我正在使用 ubuntu 12.04,liferay 版本 6.0.1,在我的系统上打开 jdk 6。我试图在java中获取远程IP和位置。为此,我找到了Host Ip服务,通过该服务我们可以使用 apache http get 方法获取位置。我已在本地系统上成功执行此操作。但是在实际服务器上,liferay portlet 没有运行,并且由于多个实例同时运行,因此很难找到错误。服务器是基于窗口的。我在 MVC Portlet 的 doView() 中使用此方法来获取 ip

com.liferay.portal.util.PortalUtil.getHttpServletRequest(renderRequest).getRemoteAddr()
4

2 回答 2

1

当我不想访问 http 标头信息时,我使用:

HttpServletRequest httpServletRequest = PortalUtil.getHttpServletRequest(portletRequest);
HttpServletRequest originalServletRequest = PortalUtil.getOriginalServletRequest(httpServletRequest);
originalServletRequest.getRemoteAddr();

通常您在httpServletRequest中找不到真正的标头信息,但它们在originalServletRequest中可用

于 2013-03-09T15:43:02.337 回答
0

这是部分答案。我不知道答案的位置部分。希望这可以帮助

查看Liferay Marketplace 上的MyIP Portlet - 它确实有一个实用功能,该功能仅从 RenderRequest 或 PortletRequest 对象获取 IP 地址的一部分。

您可能有兴趣查看相同的github 源IPAddressUtil.java

于 2013-05-09T20:00:18.847 回答