好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > JSP如何獲取客戶端真實IP地址

JSP如何獲取客戶端真實IP地址

熱門標簽:地圖標注線上教程 杭州ai語音電銷機器人功能 電銷機器人是有一些什么技術 北票市地圖標注 高德地圖標注樣式 電銷機器人好賣么 商洛電銷 杭州語音電銷機器人軟件 四川保險智能外呼系統商家

在JSP中,獲取客戶端IP的方法為:request.getRemoteAddr()。這種方法在大部分情況下都是有效的,但是在通過了Apache,Squid等反向代理軟件就不能獲取到客戶端的真實IP地址了。

如果使用了反向代理軟件,將http://192.168.1.110:3306/ 的URL反向代理為http://www.8888.com/ 的URL時,用request.getRemoteAddr()方法獲取的IP地址是:127.0.0.1 或 192.168.1.110,而并不是客戶端的真實IP。

經過代理以后,由于在客戶端和服務之間增加了中間層,因此服務器無法直接拿到客戶端的IP,服務器端應用也無法直接通過轉發請求的地址返回給客戶端。但是在轉發請求的HTTP頭信息中,增加了X-FORWARDED-FOR信息。用以跟蹤原有的客戶端IP地址和原來客戶端請求的服務器地址。當我們訪問http://www.8888.com/index.jsp/ 時,其實并不是我們瀏覽器真正訪問到了服務器上的index.jsp文件,而是先由代理服務器去訪問http://192.168.1.110:3306/index.jsp ,代理服務器再將訪問到的結果返回給我們的瀏覽器,因為是代理服務器去訪問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");
}

可是當我訪問http://www.xxx.com/index.jsp/ 時,返回的IP地址始終是unknown,也并不是如上所示的127.0.0.1 或 192.168.1.110了,而我訪問http://192.168.1.110:3306/index.jsp 時,則能返回客戶端的真實IP地址,寫了個方法去驗證。原因出在了Squid上。squid.conf 的配制文件 forwarded_for 項默認是為on,如果 forwarded_for 設成了 off 則:X-Forwarded-For: unknown

于是可得出獲得客戶端真實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

上面兩種方法都是可行的,千萬不要單單使用 request.getRemoteAddr() 方法獲取客戶端 IP,這種方法是不理想的。

希望這篇文章對大家的學習有所幫助。

您可能感興趣的文章:
  • Java獲取客戶端真實IP地址過程解析
  • Java面試之如何獲取客戶端真實IP
  • PHP獲取真實客戶端的真實IP
  • PHP獲取用戶客戶端真實IP的解決方案
  • Java實現獲取客戶端真實IP方法小結
  • PHP獲取客戶端真實IP地址的5種情況分析和實現代碼
  • php中獲取遠程客戶端的真實ip地址的方法
  • PHP 獲取客戶端真實IP地址多種方法小結
  • php 獲取客戶端的真實ip
  • 淺談使用Java Web獲取客戶端真實IP的方法示例詳解

標簽:丹東 紅河 青島 江西 西藏 云浮 宿州 貴州

巨人網絡通訊聲明:本文標題《JSP如何獲取客戶端真實IP地址》,本文關鍵詞  JSP,如何,獲取,客戶端,真實,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《JSP如何獲取客戶端真實IP地址》相關的同類信息!
  • 本頁收集關于JSP如何獲取客戶端真實IP地址的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 成人国产一区二区三区| 男女边摸边吃奶边做带声视频| 在线观看 亚洲 欧美 日本| 自拍偷自拍亚洲精品15p| 引诱已婚男h刺激高辣出轨小说| 无遮挡h肉动漫在线观| 日本一区二区三区免费高清在线| 小裙子撩上去趴下挨打视频| 狠狠色婷婷久久综合频道日韩小说 | 韩国三级毛片| 黑人超长巨大XXXXXXX白人| Z000????性欧美| 大胸女被c黄漫画动漫私密漫画| 女人裸下部图裸露全身写真图片| 性欧美26uuu在线观看| 最色网站入口| 免费视频淫片aa毛片| 夫妻作爱视频| 在中文字幕精品一区二区| 国产AV片在线观看| 欧美精品AV一级毛片| 91精品国产高清久久久久久久久| 色偷偷摸摸| 3D动漫胸乳???动漫照片| 国产精品成| 爆操女友| 草莓视频app无限观看| 欧美国产一区二区三区| 日本性生活网站| 狠狠色丁香婷婷综合小时婷婷| 操欧美肥婆| 欧美影院天天5g天天爽| 健身教练漫画在线观看| 按摩棒调教| 国语对白做受???按摩| 欧美人与禽zozo性伦交| 欧美一级婬片A片免费野花谷下载 欧美精品久久一级毛片A片爱妃记 | 国产精产国品一二三产区区别| 机机对机机30秒无遮挡软件| 天邦美氣密性檢測儀精度和測量范圍 | 短篇肉辣合集500篇+色情|