亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JSP 獲取真實IP地址的代碼

 更新時間:2009年12月06日 17:29:04   作者:  
在JSP里,獲取客戶端的IP地址的方法是:request.getRemoteAddr(),這種方法在大部分情況下都是有效的。
但是在通過了 Apache,Squid等反向代理軟件就不能獲取到客戶端的真實IP地址了。如果使用了反向代理軟件,用 request.getRemoteAddr()方法獲取的IP地址是:127.0.0.1或 192.168.1.110,而并不是客戶端的真實IP。
經(jīng)過代理以后,由于在客戶端和服務之間增加了中間層,因此服務器無法直接拿到客戶端的 IP,服務器端應用也無法直接通過轉(zhuǎn)發(fā)請求的地址返回給客戶端。但是在轉(zhuǎn)發(fā)請求的HTTP頭信息中,增加了X-FORWARDED-FOR信息。用以跟蹤原有的客戶端IP地址和原來客戶端請求的服務器地址。當我們訪問index.jsp/時,其實并不是我們?yōu)g覽器真正訪問到了服務器上的index.jsp 文件,而是先由代理服務器去訪問index.jsp ,代理服務器再將訪問到的結(jié)果返回給我們的瀏覽器,因為是代理服務器去訪問index.jsp的,所以index.jsp中通過 request.getRemoteAddr()的方法獲取的IP實際上是代理服務器的地址,并不是客戶端的IP地址。
于是可得出獲得客戶端真實IP地址的方法一:
復制代碼 代碼如下:

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

獲得客戶端真實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的值并不止一個,而是一串IP值,究竟哪個才是真正的用戶端的真實IP呢?
答案是取X-Forwarded-For中第一個非unknown的有效IP字符串。如:
X-Forwarded-For:192.168.1.110, 192.168.1.120, 192.168.1.130, 192.168.1.100
用戶真實IP為: 192.168.1.110

相關文章

  • jsp 文件下載示例代碼

    jsp 文件下載示例代碼

    簡單的下載服務端已存在文件功能,就可以方便的通過jsp文件下載的方式來輕松實現(xiàn),具體的實現(xiàn)如下,感興趣的朋友可以參考下
    2013-10-10
  • jsp簡單實現(xiàn)頁面之間共享信息的方法

    jsp簡單實現(xiàn)頁面之間共享信息的方法

    這篇文章主要介紹了jsp簡單實現(xiàn)頁面之間共享信息的方法,以實例形式簡單分析了JSP頁面之間共享參數(shù)的相關實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-09-09
  • jsp編程常用技巧小結(jié)

    jsp編程常用技巧小結(jié)

    這篇文章主要介紹了jsp編程常用技巧,結(jié)合實例形式分析了jsp針對表單、sql、字符串等的常用操作技巧,需要的朋友可以參考下
    2016-08-08
  • JSP利用過濾器解決request中文亂碼問題

    JSP利用過濾器解決request中文亂碼問題

    這篇文章主要介紹了JSP利用過濾器解決request中文亂碼問題,感興趣的小伙伴們可以參考一下
    2015-12-12
  • IE cache緩存 所帶來的問題收藏

    IE cache緩存 所帶來的問題收藏

    一個問題曾經(jīng)困擾了很久,最近才找到自己覺得合理的解釋。
    2009-01-01
  • 基于jsp的AJAX多文件上傳的實例

    基于jsp的AJAX多文件上傳的實例

    多個文件上傳是很多時候都會遇到的問題,本文主要介紹了基于jsp的AJAX多文件上傳的實現(xiàn)內(nèi)容,這里整理了詳細的代碼,有需要的朋友可以參考一下。
    2016-10-10
  • JSP自定義標簽rtexprvalue屬性用法實例分析

    JSP自定義標簽rtexprvalue屬性用法實例分析

    這篇文章主要介紹了JSP自定義標簽rtexprvalue屬性用法,以實例形式較為詳細的分析了自定義標簽rtexprvalue屬性相關使用技巧與注意事項,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10
  • JSP實現(xiàn)百萬富翁猜數(shù)字游戲

    JSP實現(xiàn)百萬富翁猜數(shù)字游戲

    這篇文章主要為大家詳細介紹了JSP實現(xiàn)百萬富翁猜數(shù)字游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • J2SE中的序列化之繼承

    J2SE中的序列化之繼承

    J2SE中的序列化之繼承...
    2006-10-10
  • jsp學習之scriptlet的使用方法詳解

    jsp學習之scriptlet的使用方法詳解

    這篇文章主要介紹了jsp學習之scriptlet的使用方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07

最新評論