HttpServletRequest から IP を取得しようとしたときに問題が発生しました。最初に私のコーディングを参照してください。
String ip = request.getHeader("X-Forwarded-For");
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("HTTP_CLIENT_IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("HTTP_X_FORWARDED_FOR");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
私の問題は、「https://192.168.18.111:8443/test/main.html」という URL (私の PC の URL は 18.111 で、サーバーは localhost に展開されています) でアプリケーションを開いた場合、上記のコーディングで正しい URL を取得できましたが、 "https://localhost:8443/test/main.html" で開くと、上記の関数で "0.1.0.1...." のようなものが返されます。 HttpServletRequest から IP を取得するより良い方法があるかどうかは誰にもわかりませんか?