Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >java获取请求的真实ip地址,获取真实ip地址,避免获取代理ip

java获取请求的真实ip地址,获取真实ip地址,避免获取代理ip

作者头像
一写代码就开心
发布于 2022-06-10 10:56:52
发布于 2022-06-10 10:56:52
6.9K00
代码可运行
举报
文章被收录于专栏:java和pythonjava和python
运行总次数:0
代码可运行

目录

1 sql

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//客户端ip
        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
        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();
        }
        if  ("127.0.0.1".equals(ip)||ip=="127.0.0.1"||"0:0:0:0:0:0:0:1".equals(ip)||ip=="0:0:0:0:0:0:0:1") {
            ip = InetAddress.getLocalHost().getHostAddress();
        }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-06-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
springcloud获取nginx反向代理后浏览器的真实ip
第一步:在nginx的location中添加如下配置: location / {             proxy_pass   http://127.0.0.1:9999;             proxy_connect_timeout 180;             proxy_send_timeout 180;             proxy_read_timeout 180;             proxy_set_header Host $host:$server_port;  
似水的流年
2020/02/17
2.3K0
获取IP、浏览器、操作系统工具类
import eu.bitwalker.useragentutils.UserAgent; import javax.servlet.http.HttpServletRequest; import java.net.InetAddress; import java.net.UnknownHostException; /** * 获取IP方法 */ public class IpUtils { /** * 获得来源的浏览器 * */ public static St
高大北
2022/06/14
3970
Spring Cloud开发人员如何解决服务冲突和实例乱窜?(IP实现方案)
在我上一篇文章《Spring Cloud开发人员如何解决服务冲突和实例乱窜?》中提到使用服务的元数据来实现隔离和路由,有朋友问到能不能直接通过IP来实现?本文就和大家一起来讨论一下这个问题
陶陶技术笔记
2020/06/02
6040
Spring Cloud开发人员如何解决服务冲突和实例乱窜?(IP实现方案)
SpringAOP + 注解实现日志管理
AOP(Aspect Orient Programming),翻译过来就是面向切面编程,面向对象编程是将程序抽象成多个层次的对象,面向切面是将程序抽象成多个切面
java攻城狮
2020/10/16
4190
Spring Boot利用AOP获取用户操作实现日志记录
思路总结: 需要在日志记录的方法中添加一个自定义注解,再去实现一个日志AOP类,AOP类把自定义注解设置为切点,当系统执行某一个添加了自定义注解的方法时,AOP会自动获取该方法名称以及用户信息实现日志记录。
水煮麥楽雞
2022/11/20
1K0
Spring Boot利用AOP获取用户操作实现日志记录
k8s生产实践之获取客户端真实IP
通常web应用获取用户客户端的真实ip一个很常见的需求,例如将用户真实ip取到之后对用户做白名单访问限制、将用户ip记录到数据库日志中对用户的操作做审计等等
仙人技术
2021/08/31
4K0
k8s生产实践之获取客户端真实IP
Java工具集-获取IP(IpUtils)
添加依赖 <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> </dependency> 代码示例 package *; import javax.servlet.http.HttpServletRequest; import java.n
cwl_java
2019/10/26
2.8K0
nginx代理tomcat不能获取真实ip地址解决方法
本文介绍了nginx服务器代理tomcat系统时,不能获取真实ip地址的解决办法,有需要的朋友参考下。
拓荒者
2019/03/11
1.9K0
使用redis计数来控制单位时间内对某接口的访问量,防止刷验证码接口之类的
使用自定义注解的方式,在需要被限制访问频率的方法上加注解即可控制。 看实现方式,基于springboot,aop,redis。 新建Springboot工程,引入redis,aop。 创建注解 package com.tianyalei.annotation; import org.springframework.core.Ordered; import org.springframework.core.annotation.Order; import java.lang.annotation.*;
天涯泪小武
2019/01/17
1.8K0
Java杂谈之获取客户端IP
获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid,nginx等反向代理软件就不能获取到客户端的真实IP地址了。
你呀不牛
2021/05/28
4.9K0
Java : 分享一个通用的获取请求客户端IP的方法
public class IpUtils { public static String getIpAddr(HttpServletRequest request) { String ipAddress = null; try { ipAddress = request.getHeader("x-forwarded-for"); if (ipAddress == null || ipAddress.length() ==
源码之路
2020/09/03
8880
Spring AOP获取请求URL的入参及返回值(通用方法)
以下代码为通用的代码,其中json解析使用的是fastJson,可以记录用户访问的ip、url、入参和出参
日薪月亿
2019/05/14
8.1K0
干货:Java正确获取客户端真实IP方法整理
在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。 如果使用了反向代理软件,将http://192.168.1.110:2046/的URL反向代理为http://www.abc.com/的URL时,用request.getRemoteAddr()方法获取的IP地址是:127.0.0.1或192.168.1.110,而并不是客户端的真实IP。 经过
Java技术栈
2018/04/02
4K0
干货:Java正确获取客户端真实IP方法整理
Java常用工具类之自定义访问对象
package com.wazn.learn.util; import javax.servlet.http.HttpServletRequest; /** * 自定义访问对象工具类 * * 获取对象的IP地址等信息 * @author yangzhenyu * */ public class CusAccessObjectUtil { /** * 如:X-Forwarded-For:192.168.1.110, 192.168.1.120,
二十三年蝉
2018/02/28
8200
哎,我早就料到你获取IP地址的姿势不对啦!
来源:https://blog.csdn.net/takeurhand/article/details/52512200
用户5224393
2019/10/10
3.3K2
spring的aop注解(java自定义注解)
该篇以记录接口调用的传入参数日志为场景,来介绍下使用自定义注解作为切点,AOP切面方式去记录每个接口的传入参数以及可扩展的业务处理。
全栈程序员站长
2022/07/29
7740
spring的aop注解(java自定义注解)
Nginx反向代理后获取用户真实IP地址
问题描述:nginx集群后无法获取用户真实的IP地址,得到的一直都是前端代理服务器。Nginx的地址有2台Nginx服务器,1台代理nacos集群,一台代理vue前端项目。在登录前端页面时一直无法获取到真实的用户IP地址,获取到的是代理前端服务器的地址解决方法:在代理的后端地址中加上如下代码: proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header
Reset
2022/12/19
1.6K0
聊聊部署在K8S的项目如何获取客户端真实IP
最近部门有个需求,需要对一些客户端IP做白名单,在白名单范围内,才能做一些业务操作。按我们的部门的一贯做法,我们会封装一个client包,提供给业务方使用。(注: 我们的项目是运行在K8S上)本以为这是一个不是很难的功能,部门的小伙伴不到一天,就把功能实现了,他通过本地调试,可以获取到正确的客户端IP,但是发布到测试环境,发现获取到的客户端IP一直是节点的IP,后面那个小伙伴排查了很久,一直没头绪,就找到我帮忙一直排查一下。今天文章主要就是来复盘这个过程
lyb-geek
2023/05/31
2K0
聊聊部署在K8S的项目如何获取客户端真实IP
获取IP地址工具类
该工具类可以获取请求的ip地址 import javax.servlet.http.HttpServletRequest; import java.net.InetAddress; import java.net.UnknownHostException; /** * @create: 2022/3/29 * @author: Tony Stark */ public class IpUtils { /** * 获取客户端IP * * @param reques
暴躁的程序猿
2022/04/08
2.1K0
SpringBoot根据IP地址获取归属地并绕过Nginx
现在,各大平台都新增了评论区显示发言者ip归属地的功能,例如哔哩哔哩,微博,知乎等等。本文主要讲解Java中是如何获取ip属地的。
Jensen_97
2023/07/20
1.1K0
SpringBoot根据IP地址获取归属地并绕过Nginx
推荐阅读
相关推荐
springcloud获取nginx反向代理后浏览器的真实ip
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验