The text below is selected, press Ctrl+C to copy to your clipboard. (⌘+C on Mac) No line numbers will be copied.
Guest
Coba
By Guest on 24th September 2017 04:49:24 AM | Syntax: TEXT | Views: 39



New paste | Download | Show/Hide line no. | Copy text to clipboard
  1. #!/usr/bin/perl
  2. use IO::File;
  3. $|=1;
  4. STDOUT->autoflush(1);
  5. $debug=1;                       ## recommended:0
  6. $bypassallrules=0;              ## recommended:0
  7. $sucks="";                      ## unused
  8. $sucks="sucks" if ($debug>=1);
  9. $timenow="";
  10. $printtimenow=1;                ## print timenow: 0|1
  11. my $logfile = '/var/log/squid/storeid.log';
  12.  
  13. open my $logfh, '>>', $logfile
  14.     or die "Couldn't open $logfile for appending: $!\n" if $debug;
  15. $logfh->autoflush(1) if $debug;
  16. while (<>) {
  17. $timenow=time()." " if ($printtimenow);
  18. print $logfh "$timenow"."in : input=$_" if ($debug>=1);
  19. @X = split;
  20. if ($X[0] =~ m/^http.*/) {
  21.         $url            = $X[0];
  22.         $referer        = $X[1];
  23.         $urlreferer     = $X[0] ." ". $X[1];   
  24. } else {
  25.         $chanel         = $X[0];
  26.         $url            = $X[1];
  27.         $referer        = $X[2];
  28.         $urlreferer     = $X[1] ." ". $X[2];
  29. }
  30.  
  31. if ($bypassallrules){
  32.  $out="$url"; ## map 1:1
  33.  
  34. #youtube googlevideo
  35. } elsif ($url =~ m/^https?\:\/\/.*google.*video(playback|goodput).*/){
  36.         @cpn    = m/[=%&?\/]cpn[=%&?\/]([^\&\s]*)/;
  37.         @id     = m/[=%&?\/]id[=%&?\/]([^\&\s]*)/;
  38.         @itag   = m/[=%&?\/]itag[=%&?\/]([\d]*)/;
  39.         @range  = m/[=%&?\/]range[=%&?\/]([\d]*-[\d]*)/;
  40.         @mime   = m/[=%&?\/]mime[=%&?\/]([^\&\s]*)/;
  41.         if ($referer =~ m/^https?\:\/\/(www|gaming)\.youtube.*\.com\/(watch\?v|embed|v)[=%&?\/]([^\&\s\?]*)/){
  42.                 @id     = $3;
  43.         } else {
  44.                 if (defined(@cpn[0])){
  45.                         if (-e "/var/log/squid/@cpn"){
  46.                                 open FILE, "/var/log/squid/@cpn";
  47.                                 @id = <FILE>;
  48.                                 close FILE;
  49.                         }
  50.                 }
  51.         }
  52.         $out="OK store-id=http://squid/google/video/id=@id/itag=@itag/mime=@mime/range=@range";
  53.  
  54. #youtube parameter
  55. } elsif (
  56.         ($url =~ m/^https?\:\/\/.*youtube.*(stream_204|watchtime|qoe|atr|csi_204|playback).*[=%&?\/]docid[=%&?\/]([^\&\s]*)/) ||
  57.         ($url =~ m/^https?\:\/\/.*youtube.*(ptracking|set_awesome).*[=%&?\/]video_id[=%&?\/]([^\&\s]*)/) ||
  58.         ($url =~ m/^https?\:\/\/.*youtube.*(player_204).*[=%&?\/]v[=%&?\/]([^\&\s]*)/)
  59.         ){
  60.         @id     = $2;
  61.         @cpn    = m/[=%&?\/]cpn[=%&?\/]([^\&\s]*)/;
  62.         if ($referer !~ m/^https?\:\/\/(www|gaming)\.youtube.*\.com\/(watch\?v|embed|v)[=%&?\/]([^\&\s\?]*)/){
  63.                 unless (-e "/var/log/squid/@cpn"){
  64.                         open FILE, ">/var/log/squid/@cpn";
  65.                         print FILE @id;
  66.                         close FILE;
  67.                 }
  68.         }
  69.         $out = "ERR";
  70.  
  71. #utmgif
  72. } elsif ($url =~ m/^https?\:\/\/www\.google-analytics\.com\/__utm\.gif\?.*/) {
  73.         $out="OK store-id=http://squid/google-analytics/__utm.gif";
  74.  
  75. #fbcdn.net or akamaihd.net video range
  76. } elsif ($url =~ m/^https?\:\/\/.*(fbcdn\.net|akamaihd\.net).*\/([\w-]+\.[\w]{2,4}).*(bytestart[=%&?\/][\d]+[&\/]byteend[=%&?\/][\d]+)/) {
  77.         $out="OK store-id=http://squid/$1/$2/$3";
  78.  
  79. #fbcdn.net or akamaihd.net with size
  80. } elsif ($url =~ m/^https?\:\/\/.*(fbcdn\.net|akamaihd\.net).*\/([a-zA-Z][\d]+[x][\d]+\/[\w-]+\.[\w]{2,4})($|\?)/) {
  81.         $out="OK store-id=http://squid/$1/$2";
  82.  
  83. #fbcdn.net or akamaihd.net safe_image.php
  84. } elsif ($url =~ m/^https?\:\/\/.*(fbcdn\.net|akamaihd\.net).*\/safe_image\.php\?(.*)/) {
  85.         $out="OK store-id=http://squid/$1/$2";
  86.  
  87. #reverbnation
  88. } elsif ($url =~ m/^https?\:\/\/c2lo\.reverbnation\.com\/audio_player\/ec_stream_song\/(.*)\?.*/) {
  89.         $out="OK store-id=http://squid/reverbnation/$1";
  90.  
  91. #playstore
  92. } elsif ($url =~ m/^https?\:\/\/.*\.c\.android\.clients\.google\.com\/market\/GetBinary\/GetBinary\/(.*\/.*)\?.*/) {
  93.         $out="OK store-id=http://squid/android/market/$1";
  94.  
  95.  
  96. #filehost
  97. } elsif ($url =~ m/^https?\:\/\/.*datafilehost.*\/get\.php.*file\=(.*)/) {
  98.         $out="OK store-id=http://squid/datafilehost/$1";
  99.  
  100.  
  101. #speedtest
  102. #} elsif ($url =~ m/^https?\:\/\/.*([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}|speedtest|espeed|api\.ookla).*\/(speedtest\.swf|speedtest-long\.swf|latency\.txt|upload\.php|speedtest-config\.php|ipaddress\.php|random.*\.jpg)/) {
  103. } elsif ($url =~ m/^https?\:\/\/.*([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}|speedtest|espeed|api\.ookla).*\/(speedtest\.swf|speedtest-long\.swf)/) {
  104.         $out="OK store-id=http://squid/speedtest/$2";
  105.  
  106.  
  107. #filehippo
  108. } elsif ($url =~ m/^https?\:\/\/.*\.filehippo\.com\/.*\/([\w-]+\.[\w]{2,4})\?.*/) {
  109.         $out="OK store-id=http://squid/filehippo/$1";
  110.  
  111.  
  112. #4shared preview.mp3
  113. } elsif ($url =~ m/^https?\:\/\/.*\.4shared\.com\/.*\/(.*\/.*)\/dlink.*preview.mp3/) {
  114.         $out="OK store-id=http://squid/4shared/preview/$1";
  115.  
  116. #4shared
  117. } elsif ($url =~ m/^https?\:\/\/.*\.4shared\.com\/download\/(.*\/.*)\?tsid.*/) {
  118.         $out="OK store-id=http://squid/4shared/download/$1";
  119.  
  120. #savefile-animeindo.tv
  121. } elsif ($url =~ m/^https?:\/\/www\.savefile\.co\:[0-9]{2,5}\/.*\/(.*\.(mp4|flv|3gp)).*/) {
  122.         $out="OK store-id=http://squid/savefile:182/$1";
  123.  
  124. #imdb
  125. } elsif ($url =~ m/^https?\:\/\/video\-http\.media\-imdb\.com\/(.*\.mp4)\?.*/) {
  126.         $out="OK store-id=http://squid/imdb/$1";
  127.  
  128. #sourceforge
  129. } elsif ($url =~ m/^https?\:\/\/.*\.dl\.sourceforge\.net\/([\w-]+\.[\w]{2,3})/) {
  130.         $out="OK store-id=http://squid/sourceforge/$1";
  131.  
  132. #steampowered dota 2
  133. } elsif ($url =~ m/^https?\:\/\/.*steam(powered|content).*\/((client|depot)\/.*\/(chunk|manifest)\/.*)\?.*/) {
  134.         $out="OK store-id=http://squid/steam/$2";
  135.  
  136. #patch gemscool lsaga
  137. } elsif ($url =~ m/^https?\:\/\/(patch\.gemscool\.com\/lsaga.*\.iop.*)\?.*/) {
  138.         $out="OK store-id=http://squid/$1";
  139.  
  140. #youtubeinmp3
  141. } elsif ($url =~ m/^https?:\/\/.*\youtubeinmp3\.com\/download\/get\/.*/) {
  142.         @id     = m/[=%&?\/]id[=%&?\/]([^\&\s]*)/;
  143.         @t      = m/[=%&?\/]t[=%&?\/]([^\&\s]*)/;
  144.         $out="OK store-id=http://squid/youtubeinmp3/id=@id/t=@t";
  145.  
  146. #googleusercontent
  147. } elsif ($url =~ m/^https?\:\/.*\.(googleusercontent\.com\/.*\/[^\?\&\%\=\/\s]*)/) {
  148.         $out="OK store-id=http://squid/$1";
  149.  
  150. #mp4upload
  151. } elsif ($url =~ m/^https?\:\/\/.*mp4upload\.com\:[0-9]{2,5}\/(.*\.[\w]{2,5})/) {
  152.         @id = $1;
  153.         if (
  154.             ($referer =~ m/^https?\:\/\/.*mp4upload\.com\/embed-(.*)\.[\w]{2,4}/) ||
  155.             ($referer =~ m/^https?\:\/\/.*mp4upload\.com\/(.*)/)
  156.            )
  157.         {@id = $1;}
  158.         $out="OK store-id=http://squid/mp4upload/@id";
  159.  
  160. } else {
  161.         $out="ERR";
  162. }
  163.  
  164. if ($X[0] =~ m/^http.*/) {
  165.         print $logfh "$timenow"."in : chanel=$chanel referer=$referer\n" if ($debug>=1);
  166.         print $logfh "$timenow"."in : url=$url\n" if ($debug>=1);
  167.         print $logfh "$timenow"."out: $out\n" if ($debug>=1);
  168.         print $logfh "\n" if ($debug>=1);
  169.         print "$out\n";
  170. } else {
  171.         print $logfh "$timenow"."in : chanel=$chanel referer=$referer\n" if ($debug>=1);
  172.         print $logfh "$timenow"."in : url=$url\n" if ($debug>=1);
  173.         print $logfh "$timenow"."out: $chanel $out\n" if ($debug>=1);
  174.         print $logfh "\n" if ($debug>=1);
  175.         print "$chanel $out\n";
  176. }
  177. }
  178. close $logfh if ($debug);



  • Recent Pastes