Spring Boot程序输出远程访问IP

这篇具有很好参考价值的文章主要介绍了Spring Boot程序输出远程访问IP。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Spring Boot程序输出远程访问IP,Spring,spring boot,java,linux

   🎉🎉欢迎来到我的CSDN主页!🎉🎉

🏅我是君易--鑨,一个在CSDN分享笔记的博主。📚📚

🌟推荐给大家我的博客专栏《SpringBoot开发》。🎯🎯

🎁如果感觉还不错的话请给我关注加三连吧!🎁🎁


前言

        今天给老铁们带来的是一个知识点的扩展,可将该知识点运用到我们的项目之后,可以监听到我们的项目

 一、为什么要输出远程访问IP

        输出远程访问IP的作用有以下几点:

输出远程访问 IP 地址常见的用途
用途 说明
安全审计 记录远程访问 IP 可以用于安全审计,跟踪系统中的访问活动。在出现安全事件或攻击时,日志中的 IP 地址信息可以帮助确定攻击来源,进而采取相应的安全措施。
访问控制 基于 IP 地址的访问控制是一种常见的安全策略。通过记录远程访问 IP,系统可以实施白名单或黑名单策略,允许或拒绝特定 IP 地址的访问。
性能分析 获取远程访问 IP 还有助于进行性能分析。在分布式系统中,了解来自不同 IP 地址的请求量和响应时间等信息可以帮助优化系统性能。
地理位置信息 IP 地址可以用于获取大致的地理位置信息。虽然不是完全准确,但在一些应用场景下,了解用户的大致地理位置可以帮助提供更个性化的服务。
用户追踪 在某些应用中,输出远程访问 IP 可以用于用户追踪和分析。这对于了解用户行为、推荐内容或定制用户体验等方面是有帮助的。

         需要注意的是,在某些情况下,特别是在涉及用户隐私的场景中,处理和记录 IP 地址可能受到法规的限制,因此在实施时需要谨慎,并确保符合相关隐私法规的规定。

二、输出远程访问IP的方式

1. 通过HttpServletRequest对象获取远程访问IP

import javax.servlet.http.HttpServletRequest;

// 在你的控制器或服务类中
public String getRemoteAddress(HttpServletRequest request) {
    String remoteAddr = "";
    if (request != null) {
        remoteAddr = request.getHeader("X-FORWARDED-FOR");
        if (remoteAddr == null || "".equals(remoteAddr)) {
            remoteAddr = request.getRemoteAddr();
        }
    }
    return remoteAddr;
}

        这个方法首先尝试从请求头中获取 "X-FORWARDED-FOR" 的值,这是常用于代理服务器转发客户端真实IP地址的头信息。如果这个头信息不存在,就使用 来获取远程IP地址。request.getRemoteAddr()

Spring Boot程序输出远程访问IP,Spring,spring boot,java,linux

2. 可以通过注入HttpServletRequest对象,然后调用上述方法来获取远程IP地址

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;

@RestController
public class MyController {

    @RequestMapping("/getRemoteIP")
    public String getRemoteIP(HttpServletRequest request) {
        String remoteIP = getRemoteAddress(request);
        return "Remote IP Address: " + remoteIP;
    }
}

        在这个例子中,当访问 "/getRemoteIP" 路径时,会返回客户端的远程IP地址。需要注意的是,如果你的应用部署在代理服务器(如Nginx、Apache)后面,代理服务器可能会修改请求头,需要查看代理服务器的配置来获取真实的远程IP地址。在Web开发中,你可以通过以下方法输出远程访问 IP 地址,具体实现可能会依赖于你使用的编程语言和框架。

3.  在Java中使用Servlet API(例如,Spring框架)

import javax.servlet.http.HttpServletRequest;

public String getRemoteAddress(HttpServletRequest request) {
    String remoteAddr = "";
    if (request != null) {
        remoteAddr = request.getHeader("X-FORWARDED-FOR");
        if (remoteAddr == null || "".equals(remoteAddr)) {
            remoteAddr = request.getRemoteAddr();
        }
    }
    return remoteAddr;
}

        在Spring MVC的控制器中,你可以注入对象来调用上述方法:HttpServletRequest

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;

@RestController
public class MyController {

    @RequestMapping("/getRemoteIP")
    public String getRemoteIP(HttpServletRequest request) {
        String remoteIP = getRemoteAddress(request);
        return "Remote IP Address: " + remoteIP;
    }
}

Spring Boot程序输出远程访问IP,Spring,spring boot,java,linux

4. 利用日志文件输出查看监听访问IP

       首先我们在我们的yml文件或者properties的文件中进行对Server配置。

server:
    port: 8080
    tomcat:
      accesslog:
#          开启远程访问日志
          enabled: true
#          表示将访问日主输出到D盘的log目录下
          directory: D:/log
#                    表示以指定的格式输出日志
          pattern: \%t \[%I\] \%{X-Forwarded-For}i %A %r %s (%D ms)

Spring Boot程序输出远程访问IP,Spring,spring boot,java,linux

         配置成功之后我们运行项目,然后进行访问,我们就会在我们指定的文件夹下生成一个文件,对其访问的Ip、路径、以及时间进行记录。

Spring Boot程序输出远程访问IP,Spring,spring boot,java,linux

         打开文件进行查看

 Spring Boot程序输出远程访问IP,Spring,spring boot,java,linux

         当然想显示其他的内容也可以进行设置修改。

查看下方网址进行对yml文件中的pattern的属性修改

Apache Tomcat 8 配置参考 (8.5.40) - 主机容器

Spring Boot程序输出远程访问IP,Spring,spring boot,java,linux

Spring Boot程序输出远程访问IP,Spring,spring boot,java,linux

Spring Boot程序输出远程访问IP,Spring,spring boot,java,linux

         根据自身的需求进行修改设置


 🎉🎉本期的博客分享到此结束🎉🎉

📚📚各位老铁慢慢消化📚📚

🎯🎯下期博客博主会带来新货🎯🎯

🎁三连加关注,阅读不迷路 !🎁

Spring Boot程序输出远程访问IP,Spring,spring boot,java,linux文章来源地址https://www.toymoban.com/news/detail-777348.html

到了这里,关于Spring Boot程序输出远程访问IP的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Spring Boot】Spring Boot日志详情:基于lombok的日志输出

    日志文件是一种记录计算机系统或应用程序运行状态和活动的文件。日志文件可以包含各种重要信息,如错误报告、警告、事件、用户活动等。日志文件通常用于故障排除、性能优化、安全审计和法律合规等方面。日志文件可以在本地存储,也可以通过网络传输到远程服务器

    2024年02月12日
    浏览(41)
  • Spring Boot 如何配置日志级别和输出格式

    在开发一个应用程序时,日志记录是非常重要的一环。Spring Boot 提供了多种日志输出方式和配置选项,本文将介绍如何在 Spring Boot 应用程序中配置日志级别和输出格式。 在 Spring Boot 应用程序中,我们可以通过修改配置文件或者编程方式来配置日志级别。在下面的示例中,我

    2024年02月14日
    浏览(42)
  • Spring Boot 跨域访问

    出于安全的考虑,浏览器会禁止 Ajax 访问不同域的地址,在现如今微服务横行的年代,跨域访问是非常常见的。W3C 的 CORS ( Cross-origin-resource-sharing ) 规范中也已经允许跨域访问, 并被主流浏览器所支持,它们包括: Chrome 3+; Firefox 3.5+; Opera 12+; Safari 4+; IE 8+; Spring Boot 提供了对

    2024年02月08日
    浏览(53)
  • Spring Boot中使用Spring Data Elasticsearch访问Elasticsearch

    Elasticsearch是一个分布式的全文搜索和分析引擎,它可以将海量数据进行快速的查询和聚合。Spring Data Elasticsearch是Spring Data家族中的一个成员,它提供了与Elasticsearch的集成,可以方便地使用Spring框架来访问Elasticsearch。 在本文中,我们将会介绍如何在Spring Boot中使用Spring Data

    2024年02月08日
    浏览(48)
  • HttpServiceProxyFactory 在 Spring Boot 3 中的应用:Spring Boot 3 使用 HttpServiceProxyFactory 调用远程接口

    博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接 : 🔗 精选专栏 : 《面试题大全》 — 面试准备的宝典! 《IDEA开发秘籍》 — 提升你的IDEA技能! 《100天精通Golang》 — Go语言学习之旅! 领域矩阵 : 🌐 猫头虎技术领域矩阵 : 深入探索

    2024年02月02日
    浏览(59)
  • 基于spring boot框架访问zookeeper

    本地部署zookeeper: 进入zookeeper-3.3.6/conf目录下,将zoo_sample.cfg文件改名为zoo.cfg,再用文本编辑器打开这个文件,修改如下红框位置的内容,改成本地一个可以访问的已有目录: 打开命令行窗口,进入zookeeper-3.3.6/bin目录,windows下执行zkServer.cmd status,mac和linux下执行./zkServer.sh

    2024年02月14日
    浏览(45)
  • Spring Boot学习随笔- 本地化测试(@SpringBootTest)、热部署(spring-boot-devtools)、日志Logback常用级别使用、指定包级别输出

    学习视频:【编程不良人】2021年SpringBoot最新最全教程 频繁启动服务器进行功能的访问非常繁琐、SpringBoot给我们提供了用于测试的依赖,自动集成Junit,使用了这个以来后,test包在打包时不会被打包进去 @SpringBootTest注解 修饰在类上,用来启动本地Spring环境 作用 热部署是指

    2024年02月05日
    浏览(79)
  • Spring Boot Actuator未授权访问漏洞

    Spring Boot Actuator 端点的未授权访问漏洞是一个安全性问题,可能会导致未经授权的用户访问敏感的应用程序信息。 可是并不用太过担心,Spring Boot Actuator 默认暴漏的信息有限,一般情况下并不会暴露敏感数据。 注册中心有些功能集成了actuator,如果同时使用eureka和actuator,可

    2024年02月13日
    浏览(41)
  • Spring Boot 数据访问框架介绍及使用

    Spring Boot 是一个流行的 Java 应用程序框架,它提供了许多工具和库,帮助开发人员快速构建高效的应用程序。其中,Spring Boot 数据访问框架是其中一个重要的组件,它提供了许多不同的选项,以便开发人员能够与各种不同的数据源进行交互。在本文中,我们将介绍 Spring Boot

    2024年02月13日
    浏览(42)
  • Spring Boot如何访问不同的数据库

            在Spring Boot应用中连接多个数据库或数据源可以使用多种方式,下面介绍两种常用的方法: 1、使用Spring Boot官方支持的多数据源配置         spring boot提供了官方支持的多数据源配置,可以简单地配置和管理多个数据源。         需要在application.properties文件中

    2024年02月13日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包