JavaでログインユーザーのIPアドレスを取得する方法は何ですか?
JavaでログインユーザーのIPアドレスを取得する方法は次のように実装できます:
- Servletを使用してIPアドレスを取得する方法は、HttpServletRequestオブジェクトのgetRemoteAddr()メソッドを使うことです。例えば:
- request.getRemoteAddr()メソッドを使用して、ipアドレスを取得します。
- Springフレームワークを使用してIPアドレスを取得する:Springフレームワークを使用する場合、HttpServletRequestオブジェクトを注入してユーザーのIPアドレスを取得できます。例えば:
- @Autowired
private HttpServletRequest request;public String getIpAddress() {
return request.getRemoteAddr();
}@Autowired
private HttpServletRequest request;public String getIpAddress() {
return request.getRemoteAddr();
}
注意:上記の方法で取得したIPアドレスは、最終ユーザーの実際のIPアドレスではなく、プロキシサーバーのIPアドレスかもしれません。 実際のIPアドレスを取得する必要がある場合、プロキシサーバーのHTTPヘッダー情報に含まれるX-Forwarded-ForやX-Real-IPフィールドを使用することを検討してください。 たとえば、Servlet内で実際のIPアドレスを取得するには、次の方法を使用できます。
String ipAddress = request.getHeader("X-Forwarded-For");
if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("X-Real-IP");
}
if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getRemoteAddr();
}