欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springboot如何獲取請求者的ip地址

 更新時間:2024年07月18日 11:32:26   作者:禾火.  
在Spring框架中,可以使用攔截器(Interceptor)來監(jiān)聽每個控制器(Controller)的請求,并記錄請求者的IP地址,這篇文章主要介紹了springboot如何獲取請求者的ip地址,需要的朋友可以參考下

在Spring框架中,可以使用攔截器(Interceptor)來監(jiān)聽每個控制器(Controller)的請求,并記錄請求者的IP地址。

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
public class IpLoggingInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
            throws Exception {
        // 在請求處理之前調(diào)用,可以記錄IP地址等信息
        String clientIpAddress = getClientIpAddress(request);
        System.out.println("IP地址:" + clientIpAddress);
        return true;
    }
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
            ModelAndView modelAndView) throws Exception {
        // 在請求處理之后調(diào)用,但在視圖渲染之前
    }
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
            throws Exception {
        // 在整個請求完成后調(diào)用,可以進行一些清理工作
    }
    private String getClientIpAddress(HttpServletRequest request) {
        String ipAddress = request.getHeader("X-Forwarded-For");
        if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) {
            ipAddress = request.getHeader("Proxy-Client-IP");
        }
        if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) {
            ipAddress = request.getHeader("WL-Proxy-Client-IP");
        }
        if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) {
            ipAddress = request.getRemoteAddr();
        }
        return ipAddress;
    }
}

上述代碼中的 IpLoggingInterceptor 類實現(xiàn)了 HandlerInterceptor 接口,其中的 preHandle 方法在請求處理之前被調(diào)用。在該方法中,我們獲取了請求者的IP地址,并進行了簡單的打印??梢愿鶕?jù)需要,將這些信息記錄到日志文件或其他存儲設備中。

接下來,需要將這個攔截器注冊到Spring應用中。在Spring Boot項目中,可以使用WebMvcConfigurer來注冊攔截器。

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebConfig implements WebMvcConfigurer {
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new IpLoggingInterceptor());
    }
}

到此這篇關(guān)于springboot如何獲取請求者的ip地址的文章就介紹到這了,更多相關(guān)springboot請求者的ip地址內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring Boot 整合 MongoDB的示例

    Spring Boot 整合 MongoDB的示例

    這篇文章主要介紹了Spring Boot 整合 MongoDB的示例,幫助大家更好的理解和學習spring boot框架,感興趣的朋友可以了解下
    2020-10-10
  • Spring?@Scheduled定時器注解使用方式

    Spring?@Scheduled定時器注解使用方式

    這篇文章主要介紹了Spring?@Scheduled定時器注解使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Spring?Boot中KafkaListener的介紹、原理和使用方法案例詳解

    Spring?Boot中KafkaListener的介紹、原理和使用方法案例詳解

    本文介紹了Spring Boot中 @KafkaListener 注解的介紹、原理和使用方法,通過本文的介紹,我們希望讀者能夠更好地理解Spring Boot中 @KafkaListener 注解的使用方法,并在項目中更加靈活地應用
    2023-09-09
  • java爬取豆瓣電影示例解析

    java爬取豆瓣電影示例解析

    這篇文章主要介紹了java爬取豆瓣電影示例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • Java中自己如何實現(xiàn)log2(N)

    Java中自己如何實現(xiàn)log2(N)

    這篇文章主要介紹了Java中自己實現(xiàn)log2(N)的方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • swagger如何返回map字段注釋

    swagger如何返回map字段注釋

    這篇文章主要介紹了swagger如何返回map字段注釋的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 基于Java實現(xiàn)一個簡單的數(shù)據(jù)同步組件

    基于Java實現(xiàn)一個簡單的數(shù)據(jù)同步組件

    這篇文章主要為大家詳細介紹了如何基于Java實現(xiàn)一個簡單的數(shù)據(jù)同步組件,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以了解一下
    2023-06-06
  • Java面試題沖刺第二十五天--并發(fā)編程3

    Java面試題沖刺第二十五天--并發(fā)編程3

    這篇文章主要為大家分享了最有價值的三道關(guān)于并發(fā)編程的面試題,涵蓋內(nèi)容全面,包括數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的題目、經(jīng)典面試編程題等,感興趣的小伙伴們可以參考一下
    2021-08-08
  • java面試中經(jīng)常會問到的mysql問題有哪些總結(jié)(基礎版)

    java面試中經(jīng)常會問到的mysql問題有哪些總結(jié)(基礎版)

    MySQL作為常見的數(shù)據(jù)庫技術(shù),其掌握程度往往是評估候選人綜合能力的重要組成部分,下面這篇文章主要介紹了java面試中經(jīng)常會問到的mysql問題有哪些的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-10-10
  • 使用Mybatis時SqlSessionFactory對象總是報空指針

    使用Mybatis時SqlSessionFactory對象總是報空指針

    本文主要介紹了使用Mybatis時SqlSessionFactory對象總是報空指針,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-09-09

最新評論