最近公司在做一个项目,有一个需求,官网上可以提交留言,但是为了安全,后端做了限制,每个ip在一个小时内只能留言两次,第三次就会提示请求过于频繁。
后端在提交留言的时候,添加了一个切面,用于判断限制次数,其中有获取客户端的真实ip的方法
public static String getIpAddress(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
String xip = request.getHeader("X-Real-IP");
if (ip != null && ip.length() != 0 && !ip.equalsIgnoreCase("unKnown")) {
int index = ip.indexOf(",");
if (index != -1) {
return ip.substring(0, index);
} else {
return ip;
}
}
ip = xip;
if (ip != null && ip.length() != 0 && !ip.equalsIgnoreCase("unKnown")) {
return ip;
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {