JavaでリクエストのIPアドレスを取得する方法は何ですか?

JavaでリクエストのIPアドレスを取得するには、次のコードを使用できます:

import javax.servlet.http.HttpServletRequest;

public String getIpAddress(HttpServletRequest request) {
   String ipAddress = request.getHeader("X-Forwarded-For");
   if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
       ipAddress = request.getHeader("Proxy-Client-IP");
   }
   if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
       ipAddress = request.getHeader("WL-Proxy-Client-IP");
   }
   if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
       ipAddress = request.getRemoteAddr();
   }
   return ipAddress;
}

このコードは、HTTPヘッダ情報を確認して、リクエストのIPアドレスを取得しようとします。最初に、「X-Forwarded-For」ヘッダからIPアドレスを取得しようとし、これは一般的なプロキシサーバの設定で、実際のクライアントのIPアドレスが取得できます。取得できない場合は、「Proxy-Client-IP」と「WL-Proxy-Client-IP」ヘッダからIPアドレスを取得しようとします。最後に、IPアドレスを取得できない場合は、request.getRemoteAddr()メソッドを使用して最終的なIPアドレスを取得します。

留意してください、異なるアプリケーションサーバーやプロキシサーバーの設定によってはこのコードがすべての環境で適用されない可能性があります。お使いの状況に合わせて調整が必要かもしれません。

bannerAds