Sa-Token
Sa-Token copied to clipboard
客户端的IP怎么获取?
对以下问题有疑问:
现在要做一个IP黑名单功能,防止被恶意打爆或持续访问特殊服务接口,好像没看到获取IP的能力?
< 备注:请尽量详细描述问题所在 >
这个应该不用基于任何框架吧,自己就可以用aop切入controller使用,我这边主要是为了打印日志而获取请求远程ip的,如下:
/**
* 使用 Nginx 进行反向代理,这个方法主要是用来获取远程 IP
*
* @param request 当前请求
*/
public String getRemoteIp(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if (StrUtil.isBlank(ip) || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if (StrUtil.isBlank(ip) || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if (StrUtil.isBlank(ip) || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
}
........ 我真的不想解决这样的问题.我只想吐槽: 这就跟我有一台车, 现在突然尿急就打电话问4s客服 你这车好像没有撒尿的地方啊.请问怎么撒! 一样的既视感.
此非sa-token的工作范畴, 需要自己实现, KairosSun 已经提供了方案的一部分, 请参考