import lombok.extern.slf4j.Slf4j;
import javax.servlet.http.HttpServletRequest;
import java.net.InetAddress;
import java.net.UnknownHostException;
/**
* @描述 ip工具
* @创建人
* @创建时间 2021/10/15
* @修改人和其它信息
*/
@Slf4j
public class IpUtils {
private static final String localhost = "127.0.0.1";
/**
* 功能描述: <br>
* 〈获取请求客户端ip〉
*/
public static String getIpAddr(HttpServletRequest request) {
String ipAddress = null;
ipAddress = request.getHeader("x-forwarded-for");
if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("Proxy-Client-IP");
}
if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("WL-Proxy-Client-IP");
}
if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getRemoteAddr();
if (localhost.equals(ipAddress)) {
InetAddress inet = null;
try {
inet = InetAddress.getLocalHost();
} catch (UnknownHostException e) {
log.error(ErrorCode.ERROR_0009.getFullCode(), ErrorCode.ERROR_0009.getMsg(), e);
}
if (inet != null) {
ipAddress = inet.getHostAddress();
}
}
}
return ipAddress;
}
}