从Http请求中获取请求的实际IP地址

2023-11-15

    public static String getRemoteIP(HttpServletRequest request) {
        String ip =null;
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            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.getRemoteAddr();
        }
        if (ip != null) {
            //对于通过多个代理的情况,最后IP为客户端真实IP,多个IP按照','分割
            int position = ip.indexOf(",");
            if (position > 0) {
                ip = ip.substring(0, position);
            }
        }
        return ip;
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从Http请求中获取请求的实际IP地址 的相关文章

随机推荐

  • 9大最佳知识库软件/文档管理工具

    企业的任何工作流程都离不开文档管理 面对复杂的业务流程 频繁的文档编辑任务和跨区域的文件共享需求 优秀的文档管理体系能够帮助企业实现安全的文档存储 高效的文档搜索 便捷的文档协作和有效的文档权限 版本 行为管控 由于各个产品切入文档管理市场
  • windows下安装cygwin+swoole教程

    swoole下载 http git oschina net swoole swoole cygwin下载 https www cygwin com setup x86 64 exe cygwin镜像地址 http mirrors sohu
  • 如何拯救空间不足的C盘?

    目录 操作步骤 确定软件后期安装的位置 修改注册表 验证 心得 操作步骤 确定软件后期安装的位置 建议选择硬盘内存比较多的一个盘 我选择的是D盘 然后复制D programs 修改注册表 打开注册表编辑器 双击HKEY LOCAL MACH
  • JS操作dom,bom

    属性是 方法里面是可以写参数的 window open 打开窗口 p1 要打开的新窗口地址 p2 窗口名称 p3 窗口特征 open newwindow html width 400px height 400px close 关闭窗口 al
  • STM32外部高速晶振不起振的故障分析

    STM32外部高速晶振不起振的故障分析 一 故障背景 网上售卖的STM32F103C8T6的核心板如图1所示 由于STM32F103C8T6最小系统核心板的采购成本高达20元 块至40元 块 为了降低采购成本 对其STM32F103C8T6
  • oracle sqlldr详解,sqlldr详解

    Oracle 的SQL LOADER可以将外部数据加载到数据库表中 下面是SQL LOADER的基本特点 1 能装入不同数据类型文件及多个数据文件的数据 2 可装入固定格式 自由定界以及可度长格式的数据 3 可以装入二进制 压缩十进制数据
  • codeblocks安装及使用教程详解

    一 官网下载 搜索codeblocks官网 下载最新codeblocks安装包 codeblocks官网 https www codeblocks org downloads 二 安装 1 双击下载好的安装文件 弹出如下界面 点击 Next
  • matlab dct实现代码,基于DCT数字水印算法的Matlab实现源代码

    M 256 原图像长度 N 32 水印图像长度 K 8 I zeros M M II zeros K K B zeros M M Idct zeros K K D zeros M M 读取原图像 I imread 33 png subplo
  • 机器学习 —— 类不平衡问题与SMOTE过采样算法

    在前段时间做本科毕业设计的时候 遇到了各个类别的样本量分布不均的问题 某些类别的样本数量极多 而有些类别的样本数量极少 也就是所谓的类不平衡 class imbalance 问题 本篇简述了以下内容 什么是类不平衡问题 为什么类不平衡是不好
  • 删除git远程库中误传的文件

    不小心把node modules文件夹上传到远端了哇 别急 有办法 git rm r cached node modules 如果是在某个文件夹下面 也可以使用路径 xxx node modules 之后再执行push git commit
  • c语言灯塔案例求塔低数,C++:有一个8层灯塔,每层所点灯数都等于该层上一层的两倍,一共有765盏灯,求塔底的灯数...

    满意答案 0214zyt 2013 05 23 采纳率 51 等级 12 已帮助 6734人 Note Your choice is C IDE include include using namespace std int main 第一
  • Java多线程的同步问题

    在多线程的编程环境中 可能会有两个或者更多的线程试图同时访问一个有限的资源 必须对这种潜在的资源冲突进行预防 解决办法 在线程使用一个资源的时候 我们为其加锁即可 访问资源的第一个线程为其加上锁以后 其它线程便不能访问那个资源 除非获得那个
  • 刷脸支付助力互联网产业时代全面到来

    近两年来 刷脸支付发展如火如荼 宁波 长沙等多个城市相继开展线下刷脸支付试点 建设银在其网点的ATM机推出刷脸取款 光大银也将人脸识别应用于账户登陆 转账 线上融资等场景 支付宝 财付通等第三方支付公司也争相推出刷脸支付设备 随着移动支付的
  • cs231n: How to Train a Neuron Network 如何训练神经网络

    CS231N第六第七课时的一些笔记 如何训练神经网络是一个比较琐碎的事情 所以整理了一下 以后训练Neuron Network的时候可以看一下 Activation Functions ReLu good ELU leaky ReLu no
  • STL中的栈——stack

    stack为STL中的适配器容器 具有栈的结构特性 对于适配器容器 默认底层容器为deque 在创建stack对象时 也可以指定其他线性容器作为其底层容器 基本操作 include
  • AIX/Unix/Linux/HP-UX 系统中文字符集

    在运行环境Unix与Linux系统中遇到中文乱码 在查看后台运行日志时很不方便 于是在网上查看解决方法 经过以下内容可以解决这个问题 希望看到此篇的人能解决此题 针对不同系统可以选用字符集如下 AIX zh CN IBM eucCN Lin
  • 单片机毕业设计不用愁!!30篇单片机毕业设计参考案例

    单片机毕业设计不用愁 30篇单片机毕业设计参考案例 30篇单片机毕业设计参考案例 这篇文章分享给大四的小伙伴 是时候该准备毕业设计了吧 别偷懒了 第二学期就准备实习了喔 所以小编我就开始为你们准备资料啦 30篇单片机毕业设计参考案例给你们啦
  • Eclipse安装查看java字节码插件Bytecode Outline

    一 下载地址 download 选择适合你自己的eclipse的版本 二 安装 根据提示把下载的jar包放进对应的目录里面 然后重启就行了 我自己的是放在这个路径下 E eclipse jee kepler SR2 win32 eclips
  • 侯捷-C++面向对象高级开发(上)-complex类实现

    complex类实现 comlex h ifndef COMPLEX H define COMPLEX H include
  • 从Http请求中获取请求的实际IP地址

    public static String getRemoteIP HttpServletRequest request String ip null if ip null ip length 0 unknown equalsIgnoreCa