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

nginx+springboot获取局域网IP外网IP

1、获取用户外网IP,需在NGINX中添加,项目地址可外网访问

proxy_set_header X-Real-IP $remote_addr;                  # 直接记录客户端真实IP
proxy_set_header X-Forwarded-For $remote_addr;            # 初始化XFF头(不要用$proxy_add_x_forwarded_for)
#pc服务端location /ym-meet/ {add_header 'Access-Control-Allow-Origin' '*' always; #不使用 always 可能会导致 header 只在成功的响应中被添加,而不会在错误响应中被添加,这可能会引发 CORS 相关的问题add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE';add_header 'Access-Control-Allow-Headers' '*';add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';if ($request_method = 'OPTIONS') {return 204;}proxy_pass http://103.16.15.4:8099/ym-meet/;proxy_set_header X-Real-IP $remote_addr;                  # 直接记录客户端真实IPproxy_set_header X-Forwarded-For $remote_addr;            # 初始化XFF头(不要用$proxy_add_x_forwarded_for)proxy_set_header Origin $http_origin;proxy_set_header Access-Control-Request-Headers $http_access_control_request_headers;proxy_set_header Access-Control-Request-Method $http_access_control_request_method;# 禁止缓存#proxy_cache_bypass $http_cache_control;#add_header Cache-Control 'no-cache, no-store, must-revalidate';#expires off;}

2、获取用户局域网IP,需用户访问的项目地址就是局域网地址

3、获取IP地址Java代码

public class IPUtils {public static String getClientIP(HttpServletRequest request) {//优先获取外网IP,没有再获取局域网IPString ip = request.getHeader("X-Forwarded-For");if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("X-Real-IP");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {//获取局域网IPip = request.getRemoteAddr();}// 对于通过多个代理的情况,第一个IP为客户端真实IP,若不是则取最后一个IP(往往是用户局域网出口的IP)// 注意:这里简单处理了通过逗号分隔的多个IP的情况,实际应用中可能需要根据具体情况进行更细致的处理if (ip != null && ip.contains(",")) {ip = ip.split(",")[0];}return ip;}
}

相关文章:

  • 加盟做网站百度地图导航网页版
  • 昌吉做网站搜索指数查询
  • 电脑网站打不开是什么原因造成的重庆森林电影完整版
  • java网站开发环境部署seo网站外包公司
  • 免费asp网站源码下载济南网络优化网址
  • 网页访问紧急升级宁波免费seo排名优化
  • mysql 5.1 升级 mysql 5.7 升级 mariadb10
  • sentinel与seata组件在微服务中的基本作用
  • ros使用(一) ubuntu以及ros的操作
  • 从URL到视频:用Python和AI构建自动化内容讲解视频生成管道
  • CSS基础3
  • css实现a标签前面加小图标
  • 【记录】服务器|常见的八种硬盘接口的简介和清晰的接口图片(2025年6月)
  • 2025城市照明新风向:从“亮起来”到“智慧共生”
  • 基于大模型的甲状腺结节预测及综合诊疗技术方案
  • PHP爬虫实战:轻松获取京东商品SKU信息
  • Bugku-CTF-web(适合初学者)
  • 基于 Python 的批量文件重命名软件设计与实现
  • React19源码系列之 API (react)
  • django 中间件
  • Android14音频子系统-Linux音频子系统ASoC-ALSA
  • python网络自动化-数据格式与数据建模语言
  • PDF处理控件Spire.PDF系列教程:Python中快速提取PDF文本、表格、图像及文档信息
  • TensorFlow Lite (TFLite) 和 PyTorch Mobile模型介绍1
  • AingDesk开源免费的本地 AI 模型管理工具(搭建和调用MCP)
  • Lychee路径遍历漏洞导致敏感文件泄露(CVE-2025-50202)