国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
JAVA獲取真實(shí)IP的方法
   /**
       * 獲取真實(shí)IP
       * @param request
       * @return
       */
      public static String getRealIp(HttpServletRequest request){
     /* 目前網(wǎng)上流行的所謂“取真實(shí)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"];
     事實(shí)上,上面的代碼只試用與用戶只使用了1層代理,如果用戶有2層,3層HTTP_X_FORWARDED_FOR 的值是:“本機(jī)真實(shí)IP,1層代理IP,2層代理IP,.....” ,
     如果這個(gè)時(shí)候你的數(shù)據(jù)中保存IP字段的長度很?。?5個(gè)字節(jié)),數(shù)據(jù)庫就報(bào)錯(cuò)了。
     所以取“真正”IP地址的方式,還應(yīng)該判斷 “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){
     //有“,”,估計(jì)多個(gè)代理。取第一個(gè)不是內(nèi)網(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]; //找到不是內(nèi)網(wǎng)的地址
     }
     }
     }else if(isIPAddress(result)) {//代理即是IP格式
     return result;
     }else{
     result = null; //代理中的內(nèi)容 非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;
//     }
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
asp.net request相關(guān)操作
真正的取真實(shí)IP地址
asp.net獲取訪客真實(shí)IP地址的函數(shù)
獲得當(dāng)前頁面客戶端的IP
ASP.NET防SQL注入腳本程序 v2.0
ASP.NET獲取IP的方法
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服