Pastebin launched a little side project called HostCabi.net, check it out ;-)Don't like ads? PRO users don't see any ads ;-)
Guest

Javascript

By: a guest on Dec 27th, 2013  |  syntax: JavaScript  |  size: 13.13 KB  |  hits: 43  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. http://js.tongji.linezing.com/3382944/tongji.js
  2. /*
  3.  *
  4.  * This code is data acquisition code for www.linezing.com web traffic analysis platform.
  5.  * www.linezing.com is Taobao's website.
  6.  */
  7.  
  8. function lz_encode(str)
  9. {
  10.         var e = "", i = 0;
  11.  
  12.         for(i=0;i<str.length;i++) {
  13.                 if(str.charCodeAt(i)>=0&&str.charCodeAt(i)<=255) {
  14.                         e = e + escape(str.charAt(i));
  15.                 }
  16.                 else {
  17.                         e = e + str.charAt(i);
  18.                 }
  19.         }
  20.  
  21.         return e;
  22. }
  23.  
  24. function lz_get_screen()
  25. {
  26.         var c = "";
  27.  
  28.         if (self.screen) {
  29.                 c = screen.width+"x"+screen.height;
  30.         }
  31.  
  32.         return c;
  33. }
  34.  
  35. function lz_get_color()
  36. {
  37.         var c = "";
  38.  
  39.         if (self.screen) {
  40.                 c = screen.colorDepth+"-bit";
  41.         }
  42.  
  43.         return c;
  44. }
  45.  
  46. function lz_get_language()
  47. {
  48.         var l = "";
  49.         var n = navigator;
  50.  
  51.         if (n.language) {
  52.                 l = n.language.toLowerCase();
  53.         }
  54.         else
  55.         if (n.browserLanguage) {
  56.                 l = n.browserLanguage.toLowerCase();
  57.         }
  58.  
  59.         return l;
  60. }
  61.  
  62. function lz_get_agent()
  63. {
  64.         var a = "";
  65.         var n = navigator;
  66.  
  67.         if (n.userAgent) {
  68.                 a = n.userAgent;
  69.         }
  70.  
  71.         return a;
  72. }
  73.  
  74. function lz_get_jvm_enabled()
  75. {
  76.         var j = "";
  77.         var n = navigator;
  78.  
  79.         j = n.javaEnabled() ? 1 : 0;
  80.  
  81.         return j;
  82. }
  83.  
  84. function lz_get_cookie_enabled()
  85. {
  86.         var c = "";
  87.         var n = navigator;
  88.         c = n.cookieEnabled ? 1 : 0;
  89.  
  90.         return c;
  91. }
  92.  
  93. function lz_get_flash_ver()
  94. {
  95.         var f="",n=navigator;
  96.  
  97.         if (n.plugins && n.plugins.length) {
  98.                 for (var ii=0;ii<n.plugins.length;ii++) {
  99.                         if (n.plugins[ii].name.indexOf('Shockwave Flash')!=-1) {
  100.                                 f=n.plugins[ii].description.split('Shockwave Flash ')[1];
  101.                                 break;
  102.                         }
  103.                 }
  104.         }
  105.         else
  106.         if (window.ActiveXObject) {
  107.                 for (var ii=10;ii>=2;ii--) {
  108.                         try {
  109.                                 var fl=eval("new ActiveXObject('ShockwaveFlash.ShockwaveFlash."+ii+"');");
  110.                                 if (fl) {
  111.                                         f=ii + '.0';
  112.                                         break;
  113.                                 }
  114.                         }
  115.                          catch(e) {}
  116.                 }
  117.         }
  118.         return f;
  119. }
  120.  
  121. function lz_get_app()
  122. {
  123.         var a = "";
  124.         var n = navigator;
  125.  
  126.         if (n.appName) {
  127.                 a = n.appName;
  128.         }
  129.         return a;
  130. }
  131.  
  132. function lz_c_ctry_top_domain(str)
  133. {
  134.         var pattern = "/^aero$|^cat$|^coop$|^int$|^museum$|^pro$|^travel$|^xxx$|^com$|^net$|^gov$|^org$|^mil$|^edu$|^biz$|^info$|^name$|^ac$|^mil$|^co$|^ed$|^gv$|^nt$|^bj$|^hz$|^sh$|^tj$|^cq$|^he$|^nm$|^ln$|^jl$|^hl$|^js$|^zj$|^ah$|^hb$|^hn$|^gd$|^gx$|^hi$|^sc$|^gz$|^yn$|^xz$|^sn$|^gs$|^qh$|^nx$|^xj$|^tw$|^hk$|^mo$|^fj$|^ha$|^jx$|^sd$|^sx$/i";
  135.  
  136.         if(str.match(pattern)){ return 1; }
  137.  
  138.         return 0;
  139. }
  140.  
  141. function lz_c_ctry_domain(str)
  142. {
  143.         var pattern = "/^ac$|^ad$|^ae$|^af$|^ag$|^ai$|^al$|^am$|^an$|^ao$|^aq$|^ar$|^as$|^at$|^au$|^aw$|^az$|^ba$|^bb$|^bd$|^be$|^bf$|^bg$|^bh$|^bi$|^bj$|^bm$|^bo$|^br$|^bs$|^bt$|^bv$|^bw$|^by$|^bz$|^ca$|^cc$|^cd$|^cf$|^cg$|^ch$|^ci$|^ck$|^cl$|^cm$|^cn$|^co$|^cr$|^cs$|^cu$|^cv$|^cx$|^cy$|^cz$|^de$|^dj$|^dk$|^dm$|^do$|^dz$|^ec$|^ee$|^eg$|^eh$|^er$|^es$|^et$|^eu$|^fi$|^fj$|^fk$|^fm$|^fo$|^fr$|^ly$|^hk$|^hm$|^hn$|^hr$|^ht$|^hu$|^id$|^ie$|^il$|^im$|^in$|^io$|^ir$|^is$|^it$|^je$|^jm$|^jo$|^jp$|^ke$|^kg$|^kh$|^ki$|^km$|^kn$|^kp$|^kr$|^kw$|^ky$|^kz$|^la$|^lb$|^lc$|^li$|^lk$|^lr$|^ls$|^lt$|^lu$|^lv$|^ly$|^ga$|^gb$|^gd$|^ge$|^gf$|^gg$|^gh$|^gi$|^gl$|^gm$|^gn$|^gp$|^gq$|^gr$|^gs$|^gt$|^gu$|^gw$|^gy$|^ma$|^mc$|^md$|^mg$|^mh$|^mk$|^ml$|^mm$|^mn$|^mo$|^mp$|^mq$|^mr$|^ms$|^mt$|^mu$|^mv$|^mw$|^mx$|^my$|^mz$|^na$|^nc$|^ne$|^nf$|^ng$|^ni$|^nl$|^no$|^np$|^nr$|^nu$|^nz$|^om$|^re$|^ro$|^ru$|^rw$|^pa$|^pe$|^pf$|^pg$|^ph$|^pk$|^pl$|^pm$|^pr$|^ps$|^pt$|^pw$|^py$|^qa$|^wf$|^ws$|^sa$|^sb$|^sc$|^sd$|^se$|^sg$|^sh$|^si$|^sj$|^sk$|^sl$|^sm$|^sn$|^so$|^sr$|^st$|^su$|^sv$|^sy$|^sz$|^tc$|^td$|^tf$|^th$|^tg$|^tj$|^tk$|^tm$|^tn$|^to$|^tp$|^tr$|^tt$|^tv$|^tw$|^tz$|^ua$|^ug$|^uk$|^um$|^us$|^uy$|^uz$|^va$|^vc$|^ve$|^vg$|^vi$|^vn$|^vu$|^ye$|^yt$|^yu$|^za$|^zm$|^zr$|^zw$/i";
  144.  
  145.         if(str.match(pattern)){ return 1; }
  146.  
  147.         return 0;
  148. }
  149.  
  150. function lz_get_domain(host)
  151. {
  152.         var d=host.replace(/^www\./, "");
  153.  
  154.         var ss=d.split(".");
  155.         var l=ss.length;
  156.  
  157.         if(l == 3){
  158.                 if(lz_c_ctry_top_domain(ss[1]) && lz_c_ctry_domain(ss[2])){
  159.                 }
  160.                 else{
  161.                         d = ss[1]+"."+ss[2];
  162.                 }
  163.         }
  164.         else if(l >= 3){
  165.  
  166.                 var ip_pat = "^[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*$";
  167.  
  168.                 if(host.match(ip_pat)){
  169.                         return d;
  170.                 }
  171.  
  172.                 if(lz_c_ctry_top_domain(ss[l-2]) && lz_c_ctry_domain(ss[l-1])) {
  173.                         d = ss[l-3]+"."+ss[l-2]+"."+ss[l-1];
  174.                 }
  175.                 else{
  176.                         d = ss[l-2]+"."+ss[l-1];
  177.                 }
  178.         }
  179.                
  180.         return d;
  181. }
  182.  
  183. function lz_get_cookie(name)
  184. {
  185.         var mn=name+"=";
  186.         var b,e;
  187.         var co=document.cookie;
  188.  
  189.         if (mn=="=") {
  190.                 return co;
  191.         }
  192.  
  193.         b=co.indexOf(mn);
  194.  
  195.         if (b < 0) {
  196.                 return "";
  197.         }
  198.  
  199.         e=co.indexOf(";", b+name.length);
  200.  
  201.         if (e < 0) {
  202.                 return co.substring(b+name.length + 1);
  203.         }
  204.         else {
  205.                 return co.substring(b+name.length + 1, e);
  206.         }
  207. }
  208.  
  209. function lz_set_cookie(name, val, cotp)
  210. {
  211.         var date=new Date;
  212.         var year=date.getFullYear();
  213.         var hour=date.getHours();
  214.  
  215.         var cookie="";
  216.  
  217.         if (cotp == 0) {
  218.                 cookie=name+"="+val+";";
  219.         }
  220.         else if (cotp == 1) {
  221.                 year=year+10;
  222.                 date.setYear(year);
  223.                 cookie=name+"="+val+";expires="+date.toGMTString()+";";
  224.         }
  225.         else if (cotp == 2) {
  226.                 hour=hour+1;
  227.                 date.setHours(hour);
  228.                 cookie=name+"="+val+";expires="+date.toGMTString()+";";
  229.         }
  230.  
  231.         var d=lz_get_domain(document.domain);
  232.         if(d != ""){
  233.                 cookie +="domain="+d+";";
  234.         }
  235.         cookie +="path="+"/;";
  236.  
  237.         document.cookie=cookie;
  238. }
  239.  
  240. function str_reverse(str) {
  241.         var ln = str.length;
  242.         var i=0;
  243.         var temp="";
  244.         for(i=ln-1; i>-1; i--) {
  245.                 if(str.charAt(i)==".")
  246.                         temp += "#";
  247.                 else
  248.                         temp += str.charAt(i);
  249.         }
  250.  
  251.         return temp;
  252. }
  253.  
  254. function lz_get_ss_id(str)
  255. {
  256.         len=str.indexOf("_");
  257.         str=str.substring(len+1);
  258.         len=str.indexOf("_");
  259.         str=str.substring(len+1);
  260.         return str;
  261. }
  262.  
  263. function lz_get_ss_no(str) {
  264.         len=str.indexOf("_");
  265.         str=str.substring(0,len);
  266.         return parseInt(str);
  267. }
  268.  
  269. function lz_get_stm()
  270. {
  271.         var date = new Date();
  272.         var yy=date.getFullYear();
  273.         var mm=date.getMonth();
  274.         var dd=date.getDate();
  275.         var hh=date.getHours();
  276.         var ii=date.getMinutes();
  277.         var ss=date.getSeconds();
  278.         var i;
  279.         var tm=0;
  280.         for(i = 1970; i < yy; i++) {
  281.                 if ((i % 4 == 0 && i % 100 != 0) || (i % 100 == 0 && i % 400 == 0)) {
  282.                         tm=tm+31622400;
  283.                 }
  284.                 else {
  285.                         tm=tm+31536000;
  286.                 }
  287.         }
  288.         mm=mm+1;
  289.        
  290.         for(i = 1; i < mm; i++) {
  291.                 if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12) {
  292.                         tm=tm+2678400;
  293.                 }
  294.                 else {
  295.                         if (i == 2) {
  296.                                 if ((yy % 4 == 0 && yy % 100 != 0) || (yy % 100 == 0 && yy % 400 == 0)) {
  297.                                         tm=tm+2505600;
  298.                                 }
  299.                                 else {
  300.                                         tm=tm+2419200;
  301.                                 }
  302.                         }
  303.                         else {
  304.                                 tm=tm+2592000;
  305.                         }
  306.                 }
  307.         }
  308.        
  309.         tm = tm +  (dd-1) * 86400; tm = tm +  hh * 3600;
  310.         tm = tm +  ii * 60;
  311.         tm = tm +  ss;
  312.         return tm;
  313. }
  314.  
  315. function lz_get_ctm(str) {
  316.         len=str.indexOf("_");
  317.         str=str.substring(len+1);
  318.         len=str.indexOf("_");
  319.         str=str.substring(0,len);
  320.         return parseInt(str, 10);
  321. }
  322.  
  323. /* main function */
  324. function lz_main()
  325. {
  326.         var unit_id     = "3382944";
  327.         var client_ip   = "66.102.255.10";
  328.         var server_time = "1388157954";
  329.         var verify_code = "982e8488";
  330.         var type        = "0";
  331.         var dest_path   = "http://dt.tongji.linezing.com/tongji.do?unit_id="+unit_id;
  332.         var expire_time = 1800;
  333.         var i;
  334.  
  335.         var host=document.location.host;
  336.         var domain = lz_get_domain(host.toLocaleLowerCase());
  337.         var hashval = 0;
  338.         for (i=0; i< domain.length; i++){
  339.                 hashval += domain.charCodeAt(i);
  340.         }
  341.  
  342.         var uv_str = lz_get_cookie("lzstat_uv");
  343.         var uv_id = "";
  344.         var uv_new = 0;
  345.         if (uv_str == ""){
  346.                 uv_new = 1;
  347.  
  348.                 var rand1 = parseInt( Math.random() * 4000000000 );
  349.                 var rand2 = parseInt( Math.random() * 4000000000 );
  350.                 uv_id = String(rand1) + String(rand2);
  351.  
  352.                 var value = uv_id+"|"+unit_id;
  353.                
  354.                 lz_set_cookie("lzstat_uv", value, 1);
  355.         }
  356.         else{
  357.                 var arr = uv_str.split("|");
  358.                 uv_id  = arr[0];
  359.                 var uids_str = arr[1];
  360.                 var uids = uids_str.split("@");
  361.                 var uid_num = uids.length;
  362.  
  363.                 var bingo = 0;
  364.                 for(var pos=0,max=uids.length;pos<max;pos++) {
  365.                         var uid = uids[pos];
  366.                         if (uid == unit_id){
  367.                                 bingo = 1;
  368.                                 break;
  369.                         }
  370.                 }
  371.  
  372.                 if (bingo == 0){
  373.                         uv_new = 1;
  374.  
  375.                         if (uid_num >= 100){
  376.                                 var value = uv_id+"|"+unit_id;
  377.                         }
  378.                         else{
  379.                                 var value = uv_str+"@"+unit_id;
  380.                         }      
  381.                        
  382.                         lz_set_cookie("lzstat_uv", value, 1);
  383.                 }
  384.         }
  385.  
  386.         var ss_str = lz_get_cookie("lzstat_ss");
  387.         var ss_id = "";
  388.         var ss_no = 0;
  389.         if (ss_str == ""){
  390.                 ss_no = 0;
  391.                 var rand = parseInt(Math.random() * 4000000000);
  392.                 ss_id = String(rand);
  393.                 value = ss_id+"_"+"0_"+lz_get_stm()+"_"+unit_id;
  394.                 lz_set_cookie("lzstat_ss", value, 0);
  395.         }
  396.         else {
  397.                 var arr = ss_str.split("|");
  398.                 var ss_num = arr.length;
  399.  
  400.                 var bingo = 0;
  401.                 for(var pos=0,max=arr.length;pos<max;pos++) {
  402.                         var ss_info = arr[pos];
  403.                         var items = ss_info.split("_");
  404.  
  405.                         var cookie_ss_id  = items[0];
  406.                         var cookie_ss_no  = parseInt(items[1]);
  407.                         var cookie_ss_stm = items[2];
  408.                         var cookie_ss_uid = items[3];
  409.  
  410.                         if (cookie_ss_uid == unit_id){
  411.                                 bingo = 1;
  412.  
  413.                                 if (lz_get_stm() - cookie_ss_stm > expire_time) {
  414.                                         ss_no = 0;
  415.                                         var rand = parseInt(Math.random() * 4000000000);
  416.                                         ss_id = String(rand);
  417.                                 }
  418.                                 else{
  419.                                         ss_no = cookie_ss_no + 1;
  420.                                         ss_id = cookie_ss_id;
  421.                                 }
  422.  
  423.                                 value = ss_id+"_"+ss_no+"_"+lz_get_stm()+"_"+unit_id;
  424.  
  425.                                 arr[pos] = value;
  426.                                 ss_str = arr.join("|");
  427.                                 lz_set_cookie("lzstat_ss", ss_str, 0);
  428.  
  429.                                 break;
  430.                         }
  431.                 }
  432.  
  433.                 if (bingo == 0)
  434.                 {
  435.                         ss_no = 0;
  436.                         var rand = parseInt(Math.random() * 4000000000);
  437.                         ss_id = String(rand);
  438.                         value = ss_id+"_"+"0_"+lz_get_stm()+"_"+unit_id;
  439.  
  440.                         if (ss_num >= 20){
  441.                                 pos = parseInt(Math.random() * ss_num);
  442.                         }
  443.                         else{
  444.                                 pos = ss_num;
  445.                         }
  446.  
  447.                         arr[pos] = value;
  448.                         ss_str = arr.join("|");
  449.                         lz_set_cookie("lzstat_ss", ss_str, 0);
  450.                 }
  451.         }
  452.  
  453.         var ref = document.referrer;
  454.         ref = lz_encode(String(ref));
  455.  
  456.         var url = document.URL;
  457.         url = lz_encode(String(url));
  458.  
  459.         var title = document.title;
  460.         title = escape(String(title));
  461.  
  462.         var charset = document.charset;
  463.         charset = lz_encode(String(charset));
  464.  
  465.         var screen = lz_get_screen();
  466.         screen = lz_encode(String(screen));
  467.  
  468.         var color =lz_get_color();
  469.         color =lz_encode(String(color));
  470.  
  471.         var language = lz_get_language();
  472.         language = lz_encode(String(language));
  473.  
  474.         var agent =lz_get_agent();
  475.         agent =lz_encode(String(agent));
  476.  
  477.         var jvm_enabled =lz_get_jvm_enabled();
  478.         jvm_enabled =lz_encode(String(jvm_enabled));
  479.  
  480.         var cookie_enabled =lz_get_cookie_enabled();
  481.         cookie_enabled =lz_encode(String(cookie_enabled));
  482.  
  483.         var flash_ver = lz_get_flash_ver();
  484.         flash_ver = lz_encode(String(flash_ver));
  485.  
  486.         var app = lz_get_app();
  487.         app = lz_encode(String(app));
  488.  
  489.         var filtered = 0;
  490.         var domain_filters = new Array();
  491.         var ip_filters = new Array();
  492.  
  493.                 domain_filters[0] = "gro#tra763";
  494.                 domain_filters[1] = "moc#olzd";
  495.                 domain_filters[2] = "moc#tra763";
  496.                 domain_filters[3] = "moc#df571";
  497.                 domain_filters[4] = "ten#oog1";
  498.                 domain_filters[5] = "nc#ppk1";
  499.                 domain_filters[6] = "nc#osnaknak";
  500.                 domain_filters[7] = "nc#emocwww";
  501.                 domain_filters[8] = "nc#psalla";
  502.                 domain_filters[9] = "moc#oesii";
  503.                 domain_filters[10] = "moc#kh0083";
  504.                 domain_filters[11] = "nc#kpwww";
  505.                 domain_filters[12] = "nc#moc#zw001";
  506.                 domain_filters[13] = "nc#kpemoc";
  507.                 domain_filters[14] = "moc#eyiq063";
  508.                 domain_filters[15] = "moc#qqa4";
  509.                 domain_filters[16] = "ten#aboakoak";
  510.                 domain_filters[17] = "moc#ecilliw";
  511.                 domain_filters[18] = "nc#moc#ibeea";
  512.                 domain_filters[19] = "moc#ibeea";
  513.                 domain_filters[20] = "nc#tra763";
  514.                 domain_filters[21] = "moc#025sns";
  515.                 domain_filters[22] = "moc#og321oah";
  516.                 domain_filters[23] = "moc#9zznc";
  517.                 domain_filters[24] = "nc#9zznc";
  518.                 domain_filters[25] = "moc#d135";
  519.                 domain_filters[26] = "moc#ridzoog";
  520.                 domain_filters[27] = "ten#rqrq";
  521.                 domain_filters[28] = "moc#195nak";
  522.                 domain_filters[29] = "moc#uynijtn";
  523.                 domain_filters[30] = "moc#falwen";
  524.                 domain_filters[31] = "nc#moc#njyhxj";
  525.        
  526.         var escape_domain = str_reverse(domain);
  527.         for (i in domain_filters){
  528.                 if(domain_filters[i] == escape_domain)
  529.                         filtered = 1;  
  530.         }
  531.  
  532.        
  533.         for (i in ip_filters){
  534.                 if(ip_filters[i] == client_ip){
  535.                         filtered = 1;
  536.                         break;
  537.                 }
  538.         }
  539.  
  540.         var url_id = 0;
  541.         var cur_url = location.href;
  542.  
  543.         dest=dest_path+"&uv_id="+uv_id+"&uv_new="+uv_new+"&cna="+""+"&cg="+""+"&mid="+""+"&mmland="+""+"&ade="+""+"&adtm="+""+"&sttm="+""+"&cpa="+""+"&ss_id="+ss_id+"&ss_no="+ss_no+"&ec="+cookie_enabled+"&ref="+ref+"&url="+url+"&title="+title+"&charset="+charset+"&domain="+domain+"&hashval="+hashval+"&filtered="+filtered+"&app="+app+"&agent="+agent+"&color="+color+"&screen="+screen+"&lg="+language+"&je="+jvm_enabled+"&fv="+flash_ver+"&st="+server_time+""+"&vc="+verify_code+""+"&ut=0"+"&url_id="+url_id+"&cnu="+String(Math.random());
  544.  
  545. document.write("<img src=\""+dest+"\" border=\"0\" width=\"1\" height=\"1\" />");
  546.  
  547.         var icon_link_host="tongji.linezing.com";
  548.  
  549.  
  550.         if(cur_url.indexOf('#lzclickmap=')>-1) {
  551.                 var token = cur_url.substr(cur_url.indexOf('#lzclickmap='), 44);
  552.                 token = token.replace(/([\/'])/g, '\\$1');
  553.                 document.write('<scr'+'ipt src=\'http://tongji.linezing.com/clickmap/load_clickmap.html?r='+Math.random()+token+'\'></scr'+'ipt>');
  554.                 return false;
  555.         }
  556.  
  557.         if(url_id>0)
  558.                 document.write('<scr'+'ipt src=\'http://js.tongji.linezing.com/3382944/'+url_id+'/clickcollect.js\'></scr'+'ipt>');
  559. }
  560.  
  561. lz_main();