diff --git a/src/main/java/com/xwolf/boot/utils/IPUtil.java b/src/main/java/com/xwolf/boot/utils/IPUtil.java new file mode 100644 index 0000000..879c6ba --- /dev/null +++ b/src/main/java/com/xwolf/boot/utils/IPUtil.java @@ -0,0 +1,43 @@ +package com.xwolf.boot.utils; + +import javax.servlet.http.HttpServletRequest; + +/** + * IP工具 + * @author xwolf + * @since 1.8 + */ +public class IPUtil { + + /** + * 获取IP地址 + * @param request + * @return + */ + public static String getIP(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 ip; + } + + + +}