最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java獲取客戶端真實IP地址經(jīng)典寫法與Lambda寫法對比示例代碼

 更新時間:2026年05月25日 10:20:55   作者:愛碼少年?00fly.online  
在網(wǎng)絡(luò)編程中,獲取客戶端的IP地址和端口地址是非常常見的需求,這篇文章主要介紹了Java獲取客戶端真實IP地址經(jīng)典寫法與Lambda寫法對比的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

一、經(jīng)典寫法

    @Autowired
    HttpServletRequest request;
    
    String[] IP_HEADERS = {"X-Forwarded-For", "X-Real-IP", "Proxy-Client-IP", "WL-Proxy-Client-IP", "HTTP_X_FORWARDED_FOR", "HTTP_X_FORWARDED", "HTTP_X_CLUSTER_CLIENT_IP", "HTTP_CLIENT_IP", "HTTP_FORWARDED_FOR", "HTTP_FORWARDED", "HTTP_VIA", "REMOTE_ADDR"};
  
    private String getClientIpClassic()
    {
        log.info("##### Classic");
        for (String header : IP_HEADERS)
        {
            String ip = request.getHeader(header);
            if (StringUtils.isNotBlank(ip) && !StringUtils.equalsIgnoreCase("unknown", ip))
            {
                log.info("##### ip header: {}", header);
                String[] ips = ip.split(",");
                return ips[0].trim();
            }
        }
        log.info("##### request.getRemoteAddr");
        return request.getRemoteAddr();
    }

二、Lambda寫法

    private String getClientIpLambda()
    {
        log.info("##### Lambda");
        return Arrays.stream(IP_HEADERS)
            .peek(log::info)
            .map(request::getHeader)
            .filter(ips -> StringUtils.isNotBlank(ips) && !"unknown".equalsIgnoreCase(ips))
            .flatMap(ips -> Arrays.stream(ips.split(",")))
            .filter(StringUtils::isNotBlank)
            .map(String::trim)
            .findFirst()
            .orElse(request.getRemoteAddr());
    }

三、總結(jié) 

到此這篇關(guān)于Java獲取客戶端真實IP地址經(jīng)典寫法與Lambda寫法對比的文章就介紹到這了,更多相關(guān)Java獲取客戶端真實IP地址內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java8中時區(qū)與不同歷法處理指南

    Java8中時區(qū)與不同歷法處理指南

    Java?8?的?java.time?API?不僅修復(fù)了舊版日期時間?API?的設(shè)計缺陷,還提供了對時區(qū)和多歷法的全面支持,下面小編就來講講具體的處理操作,有需要的可以了解下
    2025-04-04
  • linux重啟java服務(wù)的腳本

    linux重啟java服務(wù)的腳本

    這篇文章主要介紹了linux重啟java服務(wù)的腳本,本文分步驟通過shell腳本給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • Java使用quartz實現(xiàn)定時任務(wù)示例詳解

    Java使用quartz實現(xiàn)定時任務(wù)示例詳解

    這篇文章主要為大家介紹了Java使用quartz實現(xiàn)定時任務(wù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • Spring boot實現(xiàn)一個簡單的ioc(2)

    Spring boot實現(xiàn)一個簡單的ioc(2)

    這篇文章主要為大家詳細介紹了Spring boot實現(xiàn)一個簡單ioc的第二篇,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • Java診斷工具Arthas的快速入門與實踐

    Java診斷工具Arthas的快速入門與實踐

    在Java開發(fā)中,我們經(jīng)常會遇到各種性能問題、內(nèi)存泄漏、線程阻塞等問題,這些問題往往難以通過常規(guī)的日志和監(jiān)控工具來定位和解決,Arthas作為一款開源的Java診斷工具,提供了強大的實時監(jiān)控和診斷功能,本文將詳細介紹Arthas的安裝、基本使用以及一些常用命令
    2025-02-02
  • Java 對稱加密幾種算法分別實現(xiàn)

    Java 對稱加密幾種算法分別實現(xiàn)

    這篇文章主要介紹了Java 對稱加密使用DES / 3DES / AES 這三種算法分別實現(xiàn)的相關(guān)資料,這里提供了實例代碼,需要的朋友可以參考下
    2017-01-01
  • @PathVariable 如何自動填充入實例對象中

    @PathVariable 如何自動填充入實例對象中

    這篇文章主要介紹了@PathVariable 實現(xiàn)自動填充入實例對象中的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • spring boot使用自定義配置的線程池執(zhí)行Async異步任務(wù)

    spring boot使用自定義配置的線程池執(zhí)行Async異步任務(wù)

    這篇文章主要介紹了spring boot使用自定義配置的線程池執(zhí)行Async異步任務(wù),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • java 多線程死鎖詳解及簡單實例

    java 多線程死鎖詳解及簡單實例

    這篇文章主要介紹了java 多線程死鎖詳解及簡單實例的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • Java8 用Lambda表達式給List集合排序的實現(xiàn)

    Java8 用Lambda表達式給List集合排序的實現(xiàn)

    這篇文章主要介紹了Java8 用Lambda表達式給List集合排序的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08

最新評論

社会| 汉中市| 循化| 青河县| 喀什市| 和田县| 兴义市| 汾阳市| 顺昌县| 柳州市| 乌兰浩特市| 台州市| 纳雍县| 雷山县| 海原县| 高密市| 民县| 沙河市| 南陵县| 洛宁县| 聂荣县| 合肥市| 罗源县| 宁城县| 甘德县| 永济市| 高邑县| 平凉市| 沧源| 溧阳市| 富平县| 错那县| 炎陵县| 石阡县| 朝阳县| 磐石市| 米易县| 宁安市| 太保市| 杂多县| 余姚市|