cn.kdyzm.util.net.IpUtils Maven / Gradle / Ivy
package cn.kdyzm.util.net;
import lombok.experimental.UtilityClass;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.StringUtils;
import javax.servlet.http.HttpServletRequest;
import java.util.Objects;
/**
* @author kdyzm
* @date 2021/11/12
*/
@Slf4j
@UtilityClass
public class IpUtils {
/**
* 获取请求的ip地址
*/
public static String getIp(HttpServletRequest request) {
if (Objects.isNull(request)) {
return "";
}
String ip = request.getHeader("x-forwarded-for");
if (!StringUtils.isEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)) {
//多次反向代理后会有多个ip值,第一个ip才是真实ip
int index = ip.indexOf(",");
if (index != -1) {
return ip.substring(0, index);
} else {
return ip;
}
}
ip = request.getHeader("X-Real-IP");
if (!StringUtils.isEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)) {
return ip;
}
return request.getRemoteAddr();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy