当前位置: 首页 > news >正文

如何获取用户的ip地址

用户的 IP 地址可能会被隐藏或者修改,例如使用代理服务器、VPN 等工具,这样就无法准确获取用户的真实 IP 地址。
除了以上特殊情况,一般情况下 用户访问可能会经过一下链路 :
前端—>nginx—>网关—>服务 。 一般情况下后面三个获取的ip地址只能是前一个的ip 如网关只能获取到nginx的ip。所以一般情况下我们都需要从前端获取用户ip,再通过header传递下去。
nginx配置

server {listen 80; #访问端口server_name your_domain.com; #访问域名location / {proxy_pass http://your_backend;  # nginx能访问的后端网关地址proxy_set_header X-Real-IP $remote_addr;  # 设置请求头中的 X-Real-IP 字段为用户真实 IP 地址}
}

网关配置全局拦截器 implements GlobalFilter 传递ip

        ServerHttpRequest request = exchange.getRequest().mutate().header(CommonConstants.REAL_IP,exchange.getRequest().getRemoteAddress().getHostString()).build();

服务中获取

        /*** HttpServletRequest在微服务中通过获取请求头从而获取到真实的客户端IP*/String ip = request.getHeader(CommonConstants.REAL_IP);
http://www.lryc.cn/news/151429.html

相关文章:

  • 单片机-控制按键点亮LED灯
  • 微信小程序新版隐私协议弹窗实现最新版
  • GO语言圣经 第五章习题
  • 用kotlin 开发一个简单的多页面跳转
  • 记录我的tensorrt 部署yolov8
  • 什么是用户界面? 优漫动游
  • 基于 Docker 的 MySQL 主从复制搭建(Mac M1版本)
  • 【Locomotor运动模块】瞬移
  • 【负载均衡】常见的负载均衡策略有哪些?
  • ChatGPT如何应对紧急救援和医疗应急?
  • vue3 ref reactive响应式数据 赋值的问题
  • 【美团秋招】20230922小美的彩虹糖
  • 论文阅读_扩散模型_DM
  • 【每日运维】RockyLinux8.6升级OpenSSH9.4p1
  • libdrm全解析三十八 —— 源码全解析(35)
  • jar包和war包的区别
  • CloudCompare 二次开发(10)——点云投影到平面
  • 如何制作并运行 jar 程序
  • Hadoop MapReduce 调优参数
  • springboot 与 Redis整合
  • 如何高效地设计测试用例并评审
  • 基于python+Django知识图谱的医疗问答系统设计与实现
  • cuda编程常见问题
  • QTday3
  • docker镜像是如何导入的?
  • 四川大学874考研真题00-23
  • openGauss学习笔记-58 openGauss 高级特性-资源池化
  • centos升级cmake之相关问题解决
  • vcs仿真教程(查看断言)
  • 2023开学礼新疆石河子大学图书馆藏八一新书《乡村振兴战略下传统村落文化旅游设计》许少辉新财经理工