私のWebアプリケーションでは、プロキシの背後にあるクライアントの実際のIPアドレスを抽出する必要があります。検索した後、「X_FORWARDED_FOR」ヘッダーのコンテンツを読み取ることが可能な方法であることがわかりました。Javaサーブレットと着信ヘッダーのヘッダーを使用しています。リクエストに「X_FORWARDED_FOR」ヘッダーが含まれていないのに、なぜヘッダーがリクエストに含まれていないのでしょうか。
私はjava1.7、tomcat v7、プロキシサーバー:TMGを使用しており、「X_FORWARDED_FOR」ヘッダーを使用するように構成されています。
ご意見をお聞かせください。
前もって感謝します。
アップデート :
- リクエストは、jqueryajaxリクエストからサーブレットに送信されます。
利用可能なヘッダーを読み取るための私のコード:
String ip = request.getHeader("X-Forwarded-For");
//nullを返しますif (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); //return null } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); //return null } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_CLIENT_IP"); //return null } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_X_FORWARDED_FOR"); //return null } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); //return proxy server IP }