WL-Proxy-Client-IP
时间: 2023-07-24 19:12:30 浏览: 339
"WL-Proxy-Client-IP" 是一种请求头字段,通常在使用 WebLogic 作为应用服务器时出现。它被用于传递客户端的真实 IP 地址,当请求经过 WebLogic 服务器的代理时。
在代码中,当获取客户端 IP 地址时,如果 "x-forwarded-for" 字段为空或不存在,那么会尝试获取 "WL-Proxy-Client-IP" 请求头字段的值作为客户端的 IP 地址。这样可以在使用 WebLogic 作为应用服务器且有代理的情况下,获取到客户端的真实 IP 地址。
相关问题
public static final List<String> HEADER_PARAM = Arrays.asList("x-forwarded-for", "Proxy-Client-IP", "WL-Proxy-Client-IP");
这是一个Java代码段,定义了一个名为HEADER_PARAM的公共静态常量列表。该列表使用Arrays.asList方法初始化,包含三个字符串元素:"x-forwarded-for"、"Proxy-Client-IP"和"WL-Proxy-Client-IP"。这些字符串代表HTTP请求头中可能包含的参数名称。
逐步解析代码:public static String getIpAddr(HttpServletRequest request) { if (request == null) { return "unknown"; } 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("X-Forwarded-For"); } 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("X-Real-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : getMultistageReverseProxyIp(ip); }
这段代码是用来获取用户访问的IP地址的。首先判断请求对象是否存在,如果不存在,返回"unknown"。然后通过 request.getHeader() 方法获取各种可能的客户端IP地址,如果为空或者为"unknown",继续获取下一个可能的IP地址,直到最后一个获取不到时,返回 request.getRemoteAddr() 方法获取的IP地址。最后判断获取到的IP地址是否是"0:0:0:0:0:0:0:1",如果是,则将IP地址替换为"127.0.0.1",否则调用 getMultistageReverseProxyIp() 方法处理IP地址并返回。
阅读全文