java获取真实的ip地址代码

使用nginx反向代理后如何在后台web应用中获取用户ip 问题背景 在实际应用中,我们可能需要获取用户的ip地址,比如做异地登陆的判断,或者统计ip访问次数等,通常情况下我们使用 request.getRemoteAddr() 就可以获取到客户端ip,但是当我们使用了nginx作为反向代理后,使用request.getRemoteAddr()获取到的就一直是nginx服务器的ip的地址,那这时应该怎么办? 原理解释 经过反向代理后,由于在客户... 阅读详情

/**
 * IP地址
 */
public class IPUtils {

    private static Logger logger = LoggerFactory.getLogger(IPUtils.class);

    /**
     * 获取IP地址
     * 使用Nginx等反向代理软件, 则不能通过request.getRemoteAddr()获取IP地址
     * 如果使用了多级反向代理的话,X-Forwarded-For的值并不止一个,而是一串IP地址,X-Forwarded-For中第一个非unknown的有效IP字符串,则为真实IP地址
     */
    public static String getIpAddr(HttpServletRequest request) {
        String ip = null;
        try {
            ip = request.getHeader("x-forwarded-for");
            if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
                ip = request.getHeader("Proxy-Client-IP");
            }
            if (StringUtils.isEmpty(ip) || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
                ip = request.getHeader("WL-Proxy-Client-IP");
            }
            if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
                ip = request.getHeader("HTTP_CLIENT_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();
            }
        } catch (Exception e) {
            logger.error("IPUtils ERROR ", e);
        }
        // 使用代理,则获取第一个IP地址
        if (StringUtils.isEmpty(ip) && ip.length() > 15) {
            if (ip.indexOf(",") > 0) {
                ip = ip.substring(0, ip.indexOf(","));
            }
        }
        return ip;
    }
}

Java-通过IP获取真实地址 最近写了一个日志系统,需要通过访问的 IP 地址来获取真实的地址,并且存到数据库中,我也是在网上看了一些文章,遂即整理了一下供大家参考。 阅读详情

相关推荐

Simplicity Studio V5与EFR32BG22蓝牙开发环境实战指南

本文详细介绍了Simplicity Studio V5集成开发环境与EFR32BG22蓝牙芯片的开发实战指南。内容涵盖开发环境安装、SDK配置、项目创建、调试烧录、外设驱动集成及常见问题解决方案,帮助开发者快速上手物联网蓝牙应用开发,并充分利用EFR32BG22的低功耗与高集成度特性。

v5w6x的博客 320

IpUtil 工具类通过request来获取IP地址

package cc.mrbird.febs.common.utils; import javax.servlet.http.HttpServletRequest; /** * @author MrBird */ public class IpUtil { private static final String UNKNOWN = "unknown"; /** * 获取 IP地址 * 使用 Nginx等反向代理软件, 则不能通过 request.getRemoteAddr()获取 .

qq_42298793的博客 576

腾讯会议视频过期了怎么办?亲测可用:用这个免费插件抢救你的会议录制与回放

本文提供了三种亲测有效的腾讯会议视频过期恢复方案,包括浏览器缓存提取、专业工具组合及预防性措施。特别推荐使用免费插件抢救过期会议录制与回放,帮助职场人解决重要视频资料丢失的难题。

weixin_33686714的博客 265

SpringBoot 快速实现 IP 地址解析

在spring boot 项目中获取请求的ip与详细地址,很多网站app 中都已经新增了ip 地址显示,大家也可以用在自己的开发中,显得更高级。

yuechuzhixing的博客 2025

【云迁移工具RDA】迁移常见问题

Agent无法正常启动,Linux系统提示“SMS.0201 Failed to start sms agent!”,Windows系统提示“SMS.0201 源端主机网络繁忙,无法连接api网关”。该问题通常是由于源端没有通公网,或者没有按照要求配置hosts,无法与iam或者sms通信导致。需要排查源端网络。1.登录源端服务器。2.检查源端是否能正常访问互联网,若无法访问,请处理后重新启动Agent。可参考弹性公网IP Ping不通检查源端的DNS,防火墙,安全组、本地网络等。

2404_89358774的博客 1487

Nacos漏洞利用工具V3.0.5实战:从认证绕开到内存马植入的全流程指南

本文详细解析了Nacos漏洞利用工具V3.0.5在实战中的应用,从认证绕开到内存马植入的全流程。文章深入探讨了如何利用Nacos的历史漏洞,如默认口令、认证逻辑绕过、Derby SQL注入及Jraft反序列化,实现权限提升与持久化控制,并提供了防御视角与加固建议,旨在帮助安全人员理解攻击链以加强防护。

h6j7k8l9p0的博客 484

java web下获取ip

【代码】java web下获取ip。

rj2017211811的博客 797

智能车图像处理19-进阶篇11--斜入十字补线

这篇文章主要讲述智能车竞赛中如何对于斜入十字进行补线操作。

taiyuezyh的博客 7490

nginx代理 获取不到客户端的真实IP问题

在Linux环境下,利用了Nginx的强势—反向代理,结果导致用request.getRemoteAddr()获取的IP均为公司的代理服务器的IP,日志记录严重不准确!     大家都知道在服务器端获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。       但是在通过了Nginx,Squid等反向代理软件就不能获取到客户端的真实

lvfengchang1220的专栏 2275

YOLOv10改进,YOLOv10二次创新C2f结构采用WTConv卷积(感受野的小波卷积),ECCV 2024

WTConv 的核心思想是通过结合卷积神经网络(CNN)的强大特征提取能力与小波变换的多尺度特性,来实现大感受野的卷积操作,同时避免传统大卷积核带来的参数爆炸问题。传统的卷积操作通过滑动小窗口在图像上逐步执行局部特征提取,感受野的大小直接取决于卷积核的尺寸。随着卷积核的增大,参数量呈指数增长,导致网络训练效率降低、计算资源消耗增加。为解决这些问题,WTConv 提出了在小波域中执行卷积操作的策略。小波变换是一种常用于信号处理的技术,能够将信号分解为不同频率成分。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1024

【人工智能时代】- 一键部署本地AI大模型

Ollama是一个开源项目,致力于简化大型语言模型(LLM)的本地部署过程。它允许用户在自己的硬件上运行和测试最新的语言模型,无需依赖云服务。Ollama提供了一个类似于OpenAI的API接口,使得开发者可以轻松地在自己的应用程序中集成大型语言模型。此外,Ollama WebUI为用户提供了一个友好的界面,用于管理和与模型进行交互。

xiaoli8748的专栏 2402

java代码 获取到本机的真实网卡IP与所有的IPV4IP地址

前言 之前我们的项目中需要对项目中的CAS认证方式做异地登录验证,所以需要在客户端登录的时候将自己的IP地址传送过去,给服务器进行校验。 这个时候我们就需要获取通过java代码获取到本机的真实ip。在网上找到了很多关于这方面的资料,发现他们的方式只能获取到192.168.*.*这个 环回地址,还有一些方式获取到的是本机中所有网卡的ip,包括 虚拟机网卡,蓝牙虚拟网卡,这个和与访问外网的网卡比起来,只差一个过滤。 我这里将网络上面的这些方式进行了一些总结,得到了一个可以获取到真实网卡IP的方法 代码展示 p

weixin_42500220的博客 3250

YOLO11 锚框机制全解析:从改进 K-means 聚类到自适应优化,附多场景实战(附代码)

摘要 YOLO11的锚框机制采用"自适应、动态化、场景感知"的设计理念,通过数据驱动的锚框生成、多尺度感知分配和实时优化策略,显著提升目标检测性能。相较于早期YOLO版本,YOLO11的锚框完全基于训练集目标分布自适应生成,并引入智能分配策略,使不同尺寸目标获得最优匹配。技术架构包含自适应锚框生成、多尺度分配器和动态优化模块,通过改进的K-means聚类和交并比计算实现精准匹配。YOLO11锚框机制在检测精度、训练稳定性和场景适应性方面均有显著提升,为复杂场景下的目标检测提供更优解决方案

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1322

java获取网络ip地址_Java获取电脑真实IP地址的示例代码

/*** @author yins* @date 2018年8月12日下午9:53:58*/import java.net.Inet4Address;import java.net.InetAddress;import java.net.NetworkInterface;import java.net.SocketException;import java.util.Enumeration;/**...

weixin_30490729的博客 1017

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Java代码获取Nginx代理中真实IP地址

Java代码:public static String getClientIp(HttpServletRequest request) {        String ip = request.getHeader("X-Forwarded-For");        if (!StringUtils.isEmpty(ip) && !"unKnown".equalsIgnoreCas...

zzb5682119的博客 8762

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

java+取电脑ip_Java获取电脑真实IP地址的示例代码

/*** @author yins* @date 2018年8月12日下午9:53:58*/import java.net.Inet4Address;import java.net.InetAddress;import java.net.NetworkInterface;import java.net.SocketException;import java.util.Enumeration;/**...

weixin_29528865的博客 217

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

java获取客户端真实ip地址代码示例

下面的代码包括了代理类型的ip地址获取,不多说了,直接上代码, /** * 获取客户端的IP地址 * * @return */ public String getIpAddr(HttpServletRequest request) { String ipAddress = null; ipAddress = request.getHeader("x-forwarded...

mischen520的博客 761

java获取当前电脑的ip_Java获取电脑真实IP地址的示例代码

/*** @author yins* @date 2018年8月12日下午9:53:58*/import java.net.Inet4Address;import java.net.InetAddress;import java.net.NetworkInterface;import java.net.SocketException;import java.util.Enumeration;/**...

weixin_33019827的博客 1240

JAVA代码优化:地址工具类(根据IP地址获取真实的物理地址)

如果启用了地址查询功能,则使用HttpUtils.sendGet()方法发送GET请求,将IP地址作为参数附加在URL后面,并设置字符编码为Constants.GBK(GBK编码)。否则,使用fastjson库解析响应字符串为JSONObject对象,并从中获取省份("pro"字段)和城市("city"字段)信息。最后,使用String.format()方法将省份和城市信息格式化为"省份 城市"的形式,并作为真实的物理地址返回。首先,判断传入的IP地址是否为内网IP地址,如果是,则返回"内网IP"。

码字码字码字 1312

request.getRemoteAddr()如何获取用户真实的IP地址

‍要获得用户真实的IP地址需要借助请求报头中的x-forwarded-for变量。 request.getHeader("x-forwarded-for"); 完整实例如下 String realIP = request.getHeader("x-forwarded-for"); String ip = request.getRemoteAddr()

积跬步致千里 3474

Java如何获取客户端主机真实IP地址

项目开发中,小编遇到一种需求,就是将系统项目与某台主机的IP地址绑定,让该系统只能在某台主机上使用,不要问小编为什么,我也是第一次遇到这么奇怪的需求,当然也不要问小编为什么不使用权限控制,现在的权限控制组件已经发展的比较好了,答案就是领导嫌麻烦,我也很难办,事情难归难,可还是得解决,怎么解决这个事情呢?小编最开始的思路是这样的

weixin_50249953的博客 1910

java、servlet、jsp获取真实IP地址(代理、F5、WebLogic、Apache)

[code="jsp"][/code]

dch1287的专栏 260

Java中使用HttpRequest获取用户真实IP地址端口

Java中使用HttpRequest获取用户真实IP地址端口

a18372016358的博客 3280

javaweb服务端获取客户端真实IP地址

javaweb服务端获取客户端真实IP地址,终于找到你了~

IT_Most的博客 2002

java代码获取客户端的真实ip

java代码获取客户端的真实ip protected String getIpAddr(HttpServletRequest request) { String ip = request.getHeader("x-forwarded-for"); if (ip == null || ip.length() == 0 || "unknown"...

H405282968的博客 121

揭秘Java获取真实IP地址的终极方法,让你的网站安全无忧!

你是否曾经为自己的网站安全性担忧?如何确保用户访问你的网站时,能够获取到真实的IP地址呢?今天,我将为你揭开Java获取真实IP地址的神秘面纱,让你的网站安全无忧!

LA1245780的博客 183
上一篇: 8个SpringBoot精选项目
下一篇: 秒杀系统解决方案
hello1_java
博客等级 码龄10年 1粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值