mirror of
https://git.imnavajas.es/jjimenez/erp-imprimelibros.git
synced 2026-01-13 08:58:48 +00:00
modificado iva dependiendo de si es reducido o no y del lugar de la entrega
This commit is contained in:
@ -2,32 +2,36 @@ package com.imprimelibros.erp.common.web;
|
||||
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public final class IpUtils {
|
||||
private IpUtils() {}
|
||||
|
||||
private static final List<String> HEADERS = Arrays.asList(
|
||||
"X-Forwarded-For",
|
||||
"X-Real-IP",
|
||||
"CF-Connecting-IP",
|
||||
"True-Client-IP",
|
||||
"X-Client-IP",
|
||||
"X-Forwarded",
|
||||
"Forwarded-For",
|
||||
"Forwarded"
|
||||
);
|
||||
public class IpUtils {
|
||||
|
||||
public static String getClientIp(HttpServletRequest request) {
|
||||
for (String h : HEADERS) {
|
||||
String v = request.getHeader(h);
|
||||
if (v != null && !v.isBlank() && !"unknown".equalsIgnoreCase(v)) {
|
||||
// X-Forwarded-For puede traer lista: "client, proxy1, proxy2"
|
||||
String first = v.split(",")[0].trim();
|
||||
if (!first.isBlank()) return first;
|
||||
String[] headers = {
|
||||
"X-Forwarded-For",
|
||||
"Proxy-Client-IP",
|
||||
"WL-Proxy-Client-IP",
|
||||
"HTTP_X_FORWARDED_FOR",
|
||||
"HTTP_X_FORWARDED",
|
||||
"HTTP_X_CLUSTER_CLIENT_IP",
|
||||
"HTTP_CLIENT_IP",
|
||||
"HTTP_FORWARDED_FOR",
|
||||
"HTTP_FORWARDED",
|
||||
"HTTP_VIA",
|
||||
"REMOTE_ADDR"
|
||||
};
|
||||
|
||||
for (String header : headers) {
|
||||
String ip = request.getHeader(header);
|
||||
if (ip != null && ip.length() != 0 && !"unknown".equalsIgnoreCase(ip)) {
|
||||
// Si hay varios (X-Forwarded-For), toma el primero
|
||||
return ip.split(",")[0];
|
||||
}
|
||||
}
|
||||
return request.getRemoteAddr();
|
||||
|
||||
// Fallback
|
||||
String ip = request.getRemoteAddr();
|
||||
if ("0:0:0:0:0:0:0:1".equals(ip) || "::1".equals(ip)) {
|
||||
return "127.0.0.1";
|
||||
}
|
||||
return ip;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user