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

JSP 獲取真實(shí)IP地址的代碼

 更新時(shí)間:2009年12月06日 17:29:04   作者:  
在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ā)請(qǐng)求的地址返回給客戶端。但是在轉(zhuǎn)發(fā)請(qǐng)求的HTTP頭信息中,增加了X-FORWARDED-FOR信息。用以跟蹤原有的客戶端IP地址和原來客戶端請(qǐng)求的服務(wù)器地址。當(dāng)我們?cè)L問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地址的方法一:
復(fù)制代碼 代碼如下:

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

獲得客戶端真實(shí)IP地址的方法二:
復(fù)制代碼 代碼如下:

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;
}


可是,如果通過了多級(jí)反向代理的話,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)文章

  • jsp 文件下載示例代碼

    jsp 文件下載示例代碼

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

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

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

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

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

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

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

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

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

    基于jsp的AJAX多文件上傳的實(shí)例

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

    JSP自定義標(biāo)簽rtexprvalue屬性用法實(shí)例分析

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

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

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

    J2SE中的序列化之繼承

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

    jsp學(xué)習(xí)之scriptlet的使用方法詳解

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

最新評(píng)論