获取公网ip工具类(注:只能公网)
public class GetIpUtil {
/**
* 获取请求的公网ip
*/
public static String getIp(HttpServletRequest request) {
String ip = request.getHeader("X-Forwarded-For");
if (StringUtils.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)) {
// 多次反向代理后会有多个ip值,第一个ip才是真实ip
int index = ip.indexOf(",");
if (index != -1) {
return ip.substring(0, index);
} else {
return ip;
}
}
ip = request.getHeader("X-Real-IP");
if (StringUtils.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)) {
return ip;
}
return request.getRemoteAddr();
}
}
接收并判断ip是否在白名单内(具体存放ip地址自行考虑,可枚举,可入库)
@ApiOperation("测试接口")
@GetMapping("/ipTest")
public ResultData ipTest(HttpServletRequest request) {
//IP白名单检测
//将请求该接口的请求头数据拿出来
//调用获取公网ip方法
String IpUrl = GetIpUtil.getIp(request);
System.ou

该博客介绍了如何使用Java实现公网IP的白名单认证功能,包括接收IP地址并检查其是否存在于预先定义的白名单列表中,白名单的存储方式可以是枚举或数据库存储。
2594

被折叠的 条评论
为什么被折叠?



