springboot中如何获取真实ip地址
需求是用户在登录时,密码输错了5次以上要将这个ip禁用,所以如题,我需要在登录接口
代码中获得这次请求的原始ip地址。禁用ip的逻辑已经写好了,目前痛点是获取ip地址,也正是这块代码让我被领导叼了。
既然项目一般都是走nginx和网关代理,那肯定得百度了,于是百度的代码如下:
/**
* 获取ip地址
*
* @param request
* @return
*/
public String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("X-Real-IP");
if (ip != null && !"".equals(ip) && !"unknown".equalsIgnoreCase(ip)) {
return ip;
}
ip = request.getHeader("X-Forwarded-For");
if (ip != null && !"".equals(ip) && !"unknown".equalsIgnoreCase(ip)) {
int index = ip.indexOf(',');
if (index != -1) {
return ip.substring(0, index);
} else {
return ip;