1234567891011121314151617181920212223242526272829303132333435363738 |
- package com.fdkankan.gateway.util;
- import cn.hutool.core.util.StrUtil;
- import org.springframework.http.HttpHeaders;
- import org.springframework.http.server.reactive.ServerHttpRequest;
- public class WebUtil {
- private final static String UNKNOWN = "unknown";
- /**
- * 获取客户端请求终端地址
- * @param request 客户端请求request
- * @return 终端ip地址
- */
- public static String getIpAddress(ServerHttpRequest request) {
- HttpHeaders headers = request.getHeaders();
- String ip = headers.getFirst("X-Forwarded-For");
- if(StrUtil.isNotBlank(ip) && UNKNOWN.equalsIgnoreCase(ip)){
- if(ip.indexOf(",") != -1){
- ip = ip.split(",")[0];
- return ip;
- }
- }
- ip = headers.getFirst("Proxy-Client-IP");
- if(StrUtil.isNotBlank(ip)) return ip;
- ip = headers.getFirst("WL-Proxy-Client-IP");
- if(StrUtil.isNotBlank(ip)) return ip;
- ip = headers.getFirst("HTTP-CLIENT-IP");
- if(StrUtil.isNotBlank(ip)) return ip;
- ip = headers.getFirst("HTTP-X-FORWARDED-FOR");
- if(StrUtil.isNotBlank(ip)) return ip;
- ip = headers.getFirst("X-Real-IP");
- if(StrUtil.isNotBlank(ip)) return ip;
- ip = request.getRemoteAddress().getAddress().getHostAddress();
- return ip;
- }
- }
|