从 dspace 下载比特流时,我想捕获用户的 IP 地址。我已经使用以下代码成功捕获了用户的“全名”:
EPerson loggedin = context.getCurrentUser();
String eperson = null;
if (loggedin != null)
{
eperson = loggedin.getFullName();
}
else eperson = "Anonymous";
现在,我还想像从Control panel > Current Activity中看到的那样捕获 IP 地址。请告知我该如何实现这一目标以及我应该使用什么方法?
编辑: 我将在封面页功能中实现这一点(在 DSpace 5,xmlui 中可用),如果用户没有登录或者是匿名用户(例如通过 [用户的 IP 地址] 下载),将显示用户的 IP 地址下载 PDF 时。来自Taylor 和 Francis的带有封面的 PDF 示例。请注意文章封面的第一行:本文的下载者:[您的 IP 地址]。
请注意,我在 Java 方面的知识非常有限,并且很乐意感谢任何建议和帮助。
提前致谢。
更新
我尝试使用这篇文章的答案,但是当我进行 mvn 构建时,我遇到了这个错误:
method getClientIpAddr in class CoverPage cannot be applied to given types;
[ERROR] required: javax.servlet.http.HttpServletRequest
[ERROR] found: no arguments
如果您能帮我解决这个问题,我将不胜感激,我删除了对这篇文章的回答,因为它将返回服务器的外部 IP,而不是客户端的 IP 地址。