3

dspace からビットストリームをダウンロードするときに、ユーザーの IP アドレスを取得したいと考えています。次のコードを使用して、ユーザーの「氏名」を正常にキャプチャしました。

        EPerson loggedin = context.getCurrentUser();
        String eperson = null;
        if (loggedin != null)
        {
            eperson = loggedin.getFullName();
        }
        else eperson = "Anonymous";

ここで、[コントロール パネル] > [現在のアクティビティ] に表示されるような 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 が返されるため、この投稿への回答を削除しました。

4

1 に答える 1