免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
JAVA獲取真實IP的方法
   /**
       * 獲取真實IP
       * @param request
       * @return
       */
      public static String getRealIp(HttpServletRequest request){
     /* 目前網(wǎng)上流行的所謂“取真實IP地址”的方法,都有bug,沒有考慮到多層透明代理的情況。
     多數(shù)代碼類似:
     string IpAddress = (HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]!=null
     && HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] !=String.Empty)
     HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]
     :HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
     事實上,上面的代碼只試用與用戶只使用了1層代理,如果用戶有2層,3層HTTP_X_FORWARDED_FOR 的值是:“本機真實IP,1層代理IP,2層代理IP,.....” ,
     如果這個時候你的數(shù)據(jù)中保存IP字段的長度很?。?5個字節(jié)),數(shù)據(jù)庫就報錯了。
     所以取“真正”IP地址的方式,還應該判斷 “HTTP_X_FORWARDED_FOR” 中是否有“,”逗號,或者長度是否超長(超過15字節(jié) xxx.xxx.xxx.xxx)。
     */
     String result = request.getHeader("x-forwarded-for");
     if(result!=null&&result.trim().length()>0) {
     //可能有代理
     if(result.indexOf(".")==-1){
     //沒有“.”肯定是非IPv4格式
     result = null;
     } else {
     if(result.indexOf(",")!=-1){
     //有“,”,估計多個代理。取第一個不是內網(wǎng)的IP。
     result = result.trim().replace("'","");
     String[] temparyip = result.split(",");
     for(int i=0;i<temparyip.length;i++){
     if(isIPAddress(temparyip[i])
     && temparyip[i].substring(0,3)!="10."
     && temparyip[i].substring(0,7)!="192.168"
     && temparyip[i].substring(0,7)!="172.16."){
     return temparyip[i]; //找到不是內網(wǎng)的地址
     }
     }
     }else if(isIPAddress(result)) {//代理即是IP格式
     return result;
     }else{
     result = null; //代理中的內容 非IP,取IP
     }
     }
     }
    
     if (result== null || result.trim().length()==0){
     result = request.getHeader("Proxy-Client-IP");
     }
     if (result== null || result.trim().length()==0){
     result = request.getRemoteAddr();
     }
     return result;
    }
      /**
      * 判斷是否是IP地址格式
      * @param str1
      * @return
      */
     public static boolean isIPAddress(String str1) {
//     if(str1==null||str1.trim().length()<7||str1.trim().length()>15){
//     return false;
//     }
本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
asp.net request相關操作
真正的取真實IP地址
asp.net獲取訪客真實IP地址的函數(shù)
獲得當前頁面客戶端的IP
ASP.NET防SQL注入腳本程序 v2.0
ASP.NET獲取IP的方法
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服