java获取客户端ip
import ch.qos.logback.classic.pattern.ClassicConverter;
import ch.qos.logback.classic.spi.ILoggingEvent;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
public class LogIpConfig extends ClassicConverter {
@Override
public String convert(ILoggingEvent event) {
RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
if (requestAttributes == null) {
return "127.0.0.1";
}
HttpServletRequest request = ((ServletRequestAttributes) requestAttributes).getRequest();
String remoteAddr = "";
if (request != null) {
remoteAddr = request.getHeader("X-Forwarded-For");
if (remoteAddr == null || remoteAddr.trim().isEmpty()) {
remoteAddr = request.getHeader("X-Real-IP");
}
if (remoteAddr == null || remoteAddr.trim().isEmpty()) {
remoteAddr = request.getRemoteAddr();
}
}
return remoteAddr;
}
public static String getIp(){
RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
if (requestAttributes == null) {
return "127.0.0.1";
}
HttpServletRequest request = ((ServletRequestAttributes) requestAttributes).getRequest();
String remoteAddr = "";
if (request != null) {
remoteAddr = request.getHeader("X-Forwarded-For");
if (remoteAddr == null || remoteAddr.trim().isEmpty()) {
remoteAddr = request.getHeader("X-Real-IP");
}
if (remoteAddr == null || remoteAddr.trim().isEmpty()) {
remoteAddr = request.getRemoteAddr();
}
}
return remoteAddr;
}
}