dizballanze

referer recognition

Jun 23rd, 2011
253
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function referer(){    
  2.         engines =
  3.         [
  4.             {start:'http://www.google.', query:'q', name:'google'},
  5.             {start:'http://yandex.', query:'text', name:'yandex'},
  6.             {start:'rambler.ru/search', query:'query', name:'rambler'},
  7.             {start:'http://go.mail.ru/', query:'q', name:'mailru'},
  8.             {start:'http://www.bing.com/', query:'q', name:'bing'},
  9.             {start:'search.yahoo.com/search', query:'p', name:'yahoo'},
  10.             {start:'http://ru.ask.com/', query:'q', name:'ask'},
  11.             {start:'http://search.qip.ru/search', query:'query', name:'qip'}
  12.         ];
  13.  
  14.         var ref=document.referrer,req="",engine="", start;
  15.  
  16.         for (var i in engines){
  17.             if  (!engines.hasOwnProperty(i))
  18.                 continue;
  19.             if (ref.indexOf(engines[i].start)==-1)
  20.                 continue;
  21.             start = ref.indexOf('?' + engines[i].query + '=')
  22.             if (start == -1){
  23.                 start = ref.indexOf('&' + engines[i].query + '=');
  24.                 if (start == -1)
  25.                     return false;
  26.             }
  27.             engine = engines[i].name;
  28.             req = engines[i].query;
  29.         }
  30.  
  31.         ref = ref.substr(start + req.length + 2);
  32.         var end = ref.indexOf('&');
  33.         if (end != -1)
  34.                 ref = ref.substr(0, end);
  35.         return {"engine": engine, "query": ref};
  36. }
Advertisement
Add Comment
Please, Sign In to add comment