java 获取客户端IP
通过下面的代码获取不到ip的话,就得看看服务器的配置了。
梳理网络请求的流程,排查ip在哪丢失的,为什么没有在网关获取到这个客户端ip。有可能是云服务器管理厂商没有放开获取客户端ip
public String getIP(HttpServletRequest request) { log.error("X-Real-IP---" + request.getHeader("X-Real-IP")); log.error("X-Requested-For---" + request.getHeader("X-Requested-For")); log.error("x-forwarded-for---" + request.getHeader("x-forwarded-for")); log.error("X-Forwarded-For---" + request.getHeader("X-Forwarded-For")); log.error("Proxy-Client-IP--" + request.getHeader("Proxy-Client-IP")); log.error("WL-Proxy-Client-IP---" + request.getHeader("WL-Proxy-Client-IP")); log.error("HTTP_CLIENT_IP---" + request.getHeader("HTTP_CLIENT_IP")); log.error("HTTP_X_FORWARDED_FOR----" + request.getHeader("HTTP_X_FORWARDED_FOR")); log.error("request.getRemoteAddr()----" + request.getRemoteAddr()); String ip = request.getHeader("x-forwarded-for"); if (StringUtils.isEmpty(ip) || UNKNOWN.equalsIgnoreCase(ip)) { ip = request.getHeader("X-Forwarded-For"); } if (StringUtils.isEmpty(ip) || UNKNOWN.equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if (StringUtils.isEmpty(ip) || UNKNOWN.equalsIgnoreCase(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); } if (StringUtils.isEmpty(ip) || UNKNOWN.equalsIgnoreCase(ip)) { ip = request.getHeader("X-Real-IP"); } if (StringUtils.isEmpty(ip) || UNKNOWN.equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_X_FORWARDED_FOR"); } if (StringUtils.isEmpty(ip) || UNKNOWN.equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } return StringUtils.isEmpty(ip) ? null : ip.split(",")[0]; }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤
2017-11-30 c# json 序列化时遇到错误 error Self referencing loop detected for type