1.IpUtils
package com.yl.utils;
import javax.servlet.http.HttpServletRequest;
public class IpUtils {
/**
* 获取访问者的ip
* @param request
* @return
*/
public static String getIpAddr(HttpServletRequest request) {
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("WL-Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
// System.out.println("IP地址为************" + ip);
return ip;
}
}
2.在service中使用 ----这里返回的是布尔值 在controller中处理
/**
* 判断ip地址是否符合条件
*
* @return
*/
@Override
public boolean insertIpAddr(String bigCategory, HttpServletRequest request) {
boolean flag = false;
//限制警情动态和会议纪要
if (bigCategory.equals("1000001712242199") || bigCategory.equals("1000001713294255")) {
//访问者的ip
String ipAddr = IpUtils.getIpAddr(request);
//获取第三个"."前面所有字符
String str = ipAddr.substring(0, ipAddr.lastIndexOf("."));
//将访问者的ip和数据库中的ip做比对
List<IpAddr> ipAddrList = this.getIpAddrList();
for (IpAddr addr : ipAddrList) {
String getIpaddr = addr.getIp();
if (getIpaddr.substring(0, ipAddr.lastIndexOf(".")).equals(str)) {
flag = true;
}
}
} else {
flag = true;
}
return flag;
}
3.实体类
/**
* ip地址
*/
public class IpAddr {
private int id;
private String ip;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
}