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

Java實(shí)現(xiàn)獲取客戶端真實(shí)IP方法小結(jié)

 更新時(shí)間:2016年03月16日 08:55:23   投稿:hebedich  
本文給大家匯總介紹了2種使用java實(shí)現(xiàn)獲取客戶端真實(shí)IP的方法,主要用于獲取使用了代理訪問的來訪者的IP,有需要的小伙伴可以參考下。

在JSP里,獲取客戶端的IP地址的方法是:request.getRemoteAddr(),這種方法在大部分情況下都是有效的。但是在通過了Apache,Squid等反向代理軟件就不能獲取到客戶端的真實(shí)IP地址了。如果使用了反向代理軟件,用request.getRemoteAddr()方法獲取的IP地址是:127.0.0.1或192.168.1.110,而并不是客戶端的真實(shí)IP。

  經(jīng)過代理以后,由于在客戶端和服務(wù)之間增加了中間層,因此服務(wù)器無法直接拿到客戶端的 IP,服務(wù)器端應(yīng)用也無法直接通過轉(zhuǎn)發(fā)請求的地址返回給客戶端。但是在轉(zhuǎn)發(fā)請求的HTTP頭信息中,增加了X-FORWARDED-FOR信息。用以跟蹤原有的客戶端IP地址和原來客戶端請求的服務(wù)器地址。當(dāng)我們訪問index.jsp/時(shí),其實(shí)并不是我們?yōu)g覽器真正訪問到了服務(wù)器上的index.jsp文件,而是先由代理服務(wù)器去訪問index.jsp ,代理服務(wù)器再將訪問到的結(jié)果返回給我們的瀏覽器,因?yàn)槭谴矸?wù)器去訪問index.jsp的,所以index.jsp中通過request.getRemoteAddr()的方法獲取的IP實(shí)際上是代理服務(wù)器的地址,并不是客戶端的IP地址。

  于是可得出獲得客戶端真實(shí)IP地址的方法一:

public String getRemortIP(HttpServletRequest request) { 
  if (request.getHeader("x-forwarded-for") == null) { 
    return request.getRemoteAddr(); 
  } 
  return request.getHeader("x-forwarded-for"); 
} 

獲得客戶端真實(shí)IP地址的方法二:

public String getIpAddr(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; 
} 

可是,如果通過了多級反向代理的話,X-Forwarded-For的值并不止一個(gè),而是一串IP值,究竟哪個(gè)才是真正的用戶端的真實(shí)IP呢?

答案是取X-Forwarded-For中第一個(gè)非unknown的有效IP字符串。如:
X-Forwarded-For:192.168.1.110, 192.168.1.120, 192.168.1.130, 192.168.1.100
用戶真實(shí)IP為: 192.168.1.110

相關(guān)文章

  • 教你用java?stream對集合中的對象按指定字段進(jìn)行分組并統(tǒng)計(jì)

    教你用java?stream對集合中的對象按指定字段進(jìn)行分組并統(tǒng)計(jì)

    這篇文章主要給大家介紹了關(guān)于用java?stream對集合中的對象按指定字段進(jìn)行分組并統(tǒng)計(jì)的相關(guān)資料,本文主要介紹了如何利用Java的Stream流來實(shí)現(xiàn)在list集合中,對具有相同name屬性的對象進(jìn)行匯總計(jì)算的需求,需要的朋友可以參考下
    2024-10-10
  • 一篇文章輕松了解SpringBoot配置高級

    一篇文章輕松了解SpringBoot配置高級

    大家都知道SpringBoot擁有良好的基因,還能簡化編碼、配置、部署、監(jiān)控,也是現(xiàn)在面試必問的一個(gè)點(diǎn),下面這篇文章主要給大家介紹了如何通過一篇文章輕松了解SpringBoot配置高級的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • Java NIO Buffer過程詳解

    Java NIO Buffer過程詳解

    這篇文章主要介紹了Java NIO Buffer過程詳解,緩沖區(qū)在java nio中負(fù)責(zé)數(shù)據(jù)的存儲。緩沖區(qū)就是數(shù)組。用于存儲不同數(shù)據(jù)類型的數(shù)據(jù)。,需要的朋友可以參考下
    2019-06-06
  • jsp如何獲取Session中的值

    jsp如何獲取Session中的值

    這篇文章主要介紹了jsp如何獲取Session中的值,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Java 實(shí)戰(zhàn)項(xiàng)目錘煉之網(wǎng)上花店商城的實(shí)現(xiàn)流程

    Java 實(shí)戰(zhàn)項(xiàng)目錘煉之網(wǎng)上花店商城的實(shí)現(xiàn)流程

    讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+jsp+servlet+mysql+ajax實(shí)現(xiàn)一個(gè)網(wǎng)上花店商城系統(tǒng),大家可以在過程中查缺補(bǔ)漏,提升水平
    2021-11-11
  • 一文秒懂springboot druid 配置

    一文秒懂springboot druid 配置

    Druid是阿里巴巴開發(fā)的一個(gè)連接池,他提供了一個(gè)高效、功能強(qiáng)大、可擴(kuò)展性好的數(shù)據(jù)庫連接池,區(qū)別于hikari,今天通過本文給大家分享springboot druid 配置教程,需要的朋友參考下吧
    2021-08-08
  • 并行Stream與Spring事務(wù)相遇會發(fā)生什么?

    并行Stream與Spring事務(wù)相遇會發(fā)生什么?

    這篇文章主要介紹了并行Stream與Spring事務(wù)相遇會發(fā)生什么?文章主要解決實(shí)戰(zhàn)中的Bug及解決方案和技術(shù)延伸,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • 自定義log4j日志文件命名規(guī)則說明

    自定義log4j日志文件命名規(guī)則說明

    這篇文章主要介紹了自定義log4j日志文件命名規(guī)則說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 淺談DetachedCriteria和Criteria的使用方法(必看)

    淺談DetachedCriteria和Criteria的使用方法(必看)

    下面小編就為大家?guī)硪黄獪\談DetachedCriteria和Criteria的使用方法(必看)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • Spring BeanFactory和FactoryBean有哪些區(qū)別

    Spring BeanFactory和FactoryBean有哪些區(qū)別

    這篇文章主要介紹了Spring BeanFactory 與 FactoryBean 的區(qū)別詳情,BeanFactory 和 FactoryBean 的區(qū)別卻是一個(gè)很重要的知識點(diǎn),在本文中將結(jié)合源碼進(jìn)行分析講解,需要的小伙伴可以參考一下
    2023-02-02

最新評論

双峰县| 呼伦贝尔市| 施甸县| 田东县| 土默特左旗| 杭锦后旗| 鹤庆县| 宝应县| 仁布县| 永春县| 大埔县| 绥棱县| 彭阳县| 湛江市| 琼海市| 延安市| 营山县| 龙岩市| 黔东| 临夏市| 喜德县| 博罗县| 鲁山县| 维西| 香格里拉县| 阿拉善左旗| 千阳县| 兴和县| 中山市| 武平县| 双峰县| 临泽县| 大丰市| 天全县| 温宿县| 濮阳市| 宁陕县| 星子县| 七台河市| 邹城市| 师宗县|