在Spring Boot中获取用户真实IP的方法如下:
在Spring Boot的Controller方法中,可以通过
HttpServletRequest
对象来获取用户请求信息,包括IP地址。在Controller方法的参数列表中添加
HttpServletRequest
参数,然后使用以下代码获取用户真实IP:@GetMapping("/getRealIP") public String getRealIP(HttpServletRequest request) { String ipAddress = request.getHeader("X-Forwarded-For"); if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) { ipAddress = request.getHeader("Proxy-Client-IP"); } if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) { ipAddress = request.getHeader("WL-Proxy-Client-IP"); } if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) { ipAddress = request.getHeader("HTTP_CLIENT_IP"); } if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) { ipAddress = request.getHeader("HTTP_X_FORWARDED_FOR"); } if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) { ipAddress = request.getRemoteAddr(); } return "User's real IP: " + ipAddress; }
以上代码通过依次尝试获取常见的代理头信息,从而获取用户的真实IP地址。如果所有的代理头信息都没有提供IP地址,那么就会使用
request.getRemoteAddr()
来获取IP地址。
通过以上方法,你可以在Spring Boot应用中获取用户的真实IP地址。