Web项目中得到访问者的真实ip
2024-10-10 11:08:56
Web项目中得到访问者的真实ip
描述:最近要实现个功能是要记录管理员登录的真实ip,但在项目中如果直接使用request.getRemoteAddr()获得ip的话,获得的可能不是真实ip,是因为使用代理的一些原因,所以我们要自己找个方法,具体方法如下:
public class Utils { /**
* 获取ip
* @param request
* @return
*/
public static String getIp(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.getHeader("HTTP_CLIENT_IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("HTTP_X_FORWARDED_FOR");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
} }
这样就能去除代理的一些因素,得到真实的ip。
最新文章
- 带优先级的队列 - PHP实现
- docker confluence
- visual studio 插件开发
- SQLite&;&;SharedPreferences&;&;IO读写Sdcard学习笔记
- puppet_list
- linux下 /etc/profile、~/.bash_profile ~/.profile的执行过程
- LNK2019解决思路
- QCanvasItem介绍-QT3
- Object.keys、Object.getOwnPropertyNames区别
- 网站转变风格的css变化
- 转:vue项目如何刷新当前页面
- vue+elementUI表格列显示隐藏遇到bug
- 小甲鱼Python视频课后答案(第一讲)---仅记录学习
- using python read/write HBase data
- qlexpress
- logstash 如何处理 mongodb 导出来的 _id value数据。 how to custom fields of logstash by mongo mapreduce exported data.(example format: {_id:";xxx";} , value:{})
- 用 Qt Creator 开发非 Qt 的 C/C++ 程序
- c++之---初探重载操作符
- SpringBoot实现热加载方式
- Codeforces Round #520 (Div. 2) Solution
热门文章
- quartz的job怎么获取Spring上下文
- 错误:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException
- kaptcha验证码插件使用与参数
- 遇见 TiDB
- day063 form 和modelform组件
- BFC清除浮动
- MYSQL-8.0.11-WINX64(免安装版)配置
- linux 服务发布脚本升级,远程发布,指定拉取远程dev,test等分支代码
- Hadoop学习笔记04_Hbase
- rod cutting