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

Java 获取客户端 IP 地址【工具类】

Java 获取客户端 IP 地址

import javax.servlet.http.HttpServletRequest;
import java.net.InetAddress;/*** 网络工具类*/
public class NetUtils {/*** 获取客户端 IP 地址** @param request 请求* @return {@link String}*/public static String getIpAddress(HttpServletRequest request) {String ip = request.getHeader("x-forwarded-for");if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("Proxy-Client-IP");}if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("WL-Proxy-Client-IP");}if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) {ip = request.getRemoteAddr();if ("127.0.0.1".equals(ip)) {// 根据网卡取本机配置的 IPInetAddress inet = null;try {inet = InetAddress.getLocalHost();} catch (Exception e) {e.printStackTrace();}if (inet != null) {ip = inet.getHostAddress();}}}// 多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割if (ip != null && ip.length() > 15) {if (ip.indexOf(",") > 0) {ip = ip.substring(0, ip.indexOf(","));}}if (ip == null) {return "127.0.0.1";}return ip;}}
http://www.lryc.cn/news/376008.html

相关文章:

  • 区块链中nonce是什么,什么作用
  • 探索Python的多媒体解决方案:ffmpy库
  • dmhs同步因目的端表自增列报错解决方法
  • 封装分发安装教程
  • redis从入门到进阶——数据类型、 操作、数值操作、发布订阅、消息队列、布隆过滤器、事务
  • 剖析 Kafka 消息丢失的原因
  • 阿里又出AI神器,颠覆传统图像编辑,免费开源!
  • git 大文本上传和下载git-lfs
  • Ps:脚本与动作
  • MySQL数据库回顾(1)
  • 文字炫酷祝福 含魔法代码
  • docker容器中连接宿主机mysql数据库
  • Leetcode 41. 缺失的第一个正数
  • MyBatis 自定义映射 ResultMap:字段与属性的映射详解
  • 找单身狗2
  • element-ui将组件默认语言改为中文
  • SuperMap iClient3D 11i(2023) SP1 for Cesium 调整
  • 保姆级小白就业人工智能(视频+源码+笔记)
  • 微信小程序,分享和反馈功能
  • 数据安全未来之路,天空卫士荣誉领榜《中国数据安全50强(2024)》
  • CAD二次开发(10)-单行文字的添加+图形修改
  • 【SpringBoot集成Spring Security】
  • docker部署dm数据库
  • Shell中执行.sh文件的常见方式
  • 超分辨率重建——2022冠军RLFN网络推理测试(详细图文教程)
  • 国际荐酒师香港协会受邀参加2024年美国独立日庆祝活动
  • (微服务实战)聚合支付系统商户线上聚合收银台接口设计
  • 【漏洞复现】CRMEB开源电商系统 /api/products SQL注入漏洞(CVE-2024-36837)
  • 摄像头图像矫正的表格生成方法
  • 【Arc gis】Arc gis出现ERROR 999999问题的解决办法