首页 > 编程语言 >java 获取ip

java 获取ip

时间:2023-05-16 17:45:22浏览次数:34  
标签:java 获取 ip getHeader request equalsIgnoreCase unknown null

 

获取ip信息

public static String getRealIp(HttpServletRequest request) {
        String 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();
        }
        return ip.equals("0:0:0:0:0:0:0:1") ? "127.0.0.1" : ip;
    }

 

标签:java,获取,ip,getHeader,request,equalsIgnoreCase,unknown,null
From: https://www.cnblogs.com/lccsdncnblogs/p/17406344.html

相关文章

  • GDI-ExcludeClipRect创建一个新的剪辑区域,该区域由现有剪辑区域减去指定的矩形组成
     HRGNhrgn1=CreateRectRgn(10,10,300,300);//创建矩形区域HDChdc=::GetDC(m_hWnd);intn=SelectClipRgn(hdc,hrgn1);//选择剪切区域intn1=::ExcludeClipRect(hdc,200,200,300,300);//创建一个新的剪辑区域,该区域由现有剪......
  • Java Instant 创建和使用
    JavaInstant创建和使用 JavaInstant是一个日期和时间相关的类,它表示时间轴上的一个点,精确到纳秒。在Java8中引入了Instant类,可以方便地进行时间戳的操作和转换。创建Instant实例可以通过以下几种方式: 1、使用now()方法获取当前时间的Instant对象Instant......
  • 从0到1搭建后台管理系统(Vue3 + Vite4 + TypeScript + Element Plus + Pinia + Vue Rou
    参考有来:https://www.cnblogs.com/haoxianrui/p/17331952.htmlNode16+版本大于16【问题一:目前我是14.18.2的版本npm是6.14.15版本,这就涉及到要切换node版本的问题,不然我安装了16我的vue2项目就启动不了了】vscode插件市场搜索 VueLanguageFeatures(Volar) 和 TypeScript......
  • Java网络编程----通过实现简易聊天工具来聊聊BIO
    IO模型即输入输出模型,我们今天主要来聊的是java网络编程中的IO模型---BIO模型。BIO即阻塞式IO,BlockingIOblocking[ˈblɒkɪŋ]v. 堵塞;阻塞;堵住(某人的路等);挡住(某人的视线等);妨碍;阻碍;那究竟什么是阻塞呢?这里的阻塞和多线程并发控制中,对未持有锁的线程进行同步阻......
  • pytorch的安装—pip
    之前我有写过使用anaconda安装pytorch的文章,但是当时出现了无法解决的问题,安装的pytorch不管如何,都是下载的cpu版本的,于是我重复很多次,检查了cuda版本,cudaa版本,都是一一对应的,但是用conda下载就是不行,直到我看到了这样一篇文章:安装GPU版本的pytorch(解决pytorch安装时默认安装CPU......
  • javescript入门
    js组成和基本结构javascript缘由:可以实现html,css初级验证实现不了的复杂的验证减轻服务器压力(在发送请求到服务器之前用javescript验证客户端)w3c标准:结构化(html)表现化(css)行为化(javescript)javascript定义:脚本语言(一堆命令组合在一起,可以批量执行的)有一定的安全性javascript......
  • Java中ArrayList集合类的使用
    一、概述什么是ArrayList?ArrayList类是可以动态修改的数组,没有固定的大小限制,可以添加、删除、修改、遍历元素。ArrayList继承了AbstractList,实现了List接口。二、ArrayList的使用1、在使用前需要导入包: 1importjava.util.ArrayList; 2、初始化: 1ArrayList<E>objec......
  • TypeScript 类型
    类型判断getType:function(obj:any){returnObject.prototype.toString.call(obj).slice(8,-1);}//=>[objectFunction/xxxx]=>‘Function/xxxx’Object.prototype.toString.call(obj))是一种常用的typeof,使用了object原型上的toString。该值存放于对象的[Sym......
  • python3 获取mongodb表中数据的条数
    说明:此处考虑了时区,mongodb默认使用"格林威治时间"1#!/usr/bin/python323importpymongo4importdatetime5importpytz67#统计8"""9/usr/bin/pip3install-Ivpymongo-ihttp://pypi.douban.com/simple/--trusted-hostpypi.douban.com......
  • 在内陆指定国内pip安装源安装python第三方库
    Python官方网站提供了第三方库索引网站(PyPI:thePythonPackageIndex)https://pypi.org,内陆需要代理才能访问。在内陆指定国内pip安装源安装python第三方库,在Windows的CMD窗口运行:pipinstalldocx-ihttps://mirrors.aliyun.com/pypi/simple/pipinstallopenpyxl-ihttps://m......