/**
* 获取访问的IP地址
* @date 2018年11月26日上午11:31:49
* @user : hetao
* @param request
* @return
*/
public String getIpAddr(HttpServletRequest request){
String ipAddress = request.getHeader(\"x-forwarded-for\");
if(ipAddress == null || ipAddress.length() == 0 || \"unknown\".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader(\"Proxy-Client-IP\");
}
if(ipAddress == null || ipAddress.length() == 0 || \"unknown\".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader(\"WL-Proxy-Client-IP\");
}
if(ipAddress == null || ipAddress.length() == 0 || \"unknown\".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getRemoteAddr();
if(ipAddress.equals(\"127.0.0.1\") || ipAddress.equals(\"0:0:0:0:0:0:0:1\")){
//根据网卡取本机配置的IP
InetAddress inet=null;
try {
inet = InetAddress.getLocalHost();
} catch (UnknownHostException e) {
e.printStackTrace();
}
ipAddress= inet.getHostAddress();
}
}
//对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照\',\'分割
if(ipAddress!=null && ipAddress.length()>15){ //\"***.***.***.***\".length() = 15
if(ipAddress.indexOf(\",\")>0){
ipAddress = ipAddress.substring(0,ipAddress.indexOf(\",\"));
}
}
return ipAddress;
}
只需要把request的参数传进去就可以拿到IP了。
使用场景:日志记录
继续阅读与本文标签相同的文章
做好容错才能确保服务器的不间断运行
UI设计高效学习网站&工具,来自学长的收藏夹哦
-
Spring Cloud Zuul的动态路由怎样做?集成Nacos实现很简单
2026-05-19栏目: 教程
-
springboot自动配置原理
2026-05-19栏目: 教程
-
Windows10下载mysql详解
2026-05-19栏目: 教程
-
强强联合 阿里云 RDS for SQL Server 与 金蝶 K/3 WISE 产品实现兼容适配
2026-05-19栏目: 教程
-
给网站添加微信扫描二维码登录功能
2026-05-19栏目: 教程
