Advertisement
agungggs

Storeid.pl referrer

Jul 28th, 2016
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.14 KB | None | 0 0
  1. #!/usr/bin/perl
  2. #
  3. # mods by cespun
  4. #
  5.  
  6. use IO::File;
  7. $| = 1;
  8. STDOUT->autoflush(1);
  9. $debug = 1; ## recommended:0
  10. $bypassallrules = 0; ## recommended:0
  11. $sucks = ""; ## unused
  12. $sucks = "sucks" if ($debug>=1);
  13. $timenow ="";
  14. $printtimenow = 1; ## print timenow: 0|1
  15. my $logfile = '/var/log/squid/storeid.log';
  16.  
  17. open my $logfh, '>>', $logfile
  18. or die "Couldn't open $logfile for appending: $!\n" if $debug;
  19. $logfh->autoflush(1) if $debug;
  20.  
  21. while (<>) {
  22. $timenow = time()." " if ($printtimenow);
  23. print $logfh "$timenow"."in : input = $_" if ($debug >= 1);
  24. @X = split;
  25. if ($X[0] =~ m/^http.*/) {
  26. $url = $X[0];
  27. $referer = $X[1];
  28. $urlreferer = $X[0] ." ". $X[1];
  29. } else {
  30. $chanel = $X[0];
  31. $url = $X[1];
  32. $referer = $X[2];
  33. $urlreferer = $X[1] ." ". $X[2];
  34. }
  35.  
  36. ‪#‎youtube‬ googlevideo
  37. if ($url =~ m/^https?\:\/\/.*googlevideo.*video(playback|goodput).*/){
  38. @cpn = m/[=%&?\/]cpn[=%&?\/]([^\&\s]*)/;
  39. @id = m/[=%&?\/]id[=%&?\/]([^\&\s]*)/;
  40. @itag = m/[=%&?\/]itag[=%&?\/]([\d]*)/;
  41. @range = m/[=%&?\/]range[=%&?\/]([\d]*-[\d]*)/;
  42. @mime = m/[=%&?\/]mime[=%&?\/]([^\&\s]*)/;
  43. if ($referer =~ m/^https?\:\/\/www\.youtube\.com\/(watch\?v|embed|v)[=%&?\/]([^\&\s\?]*)/){
  44. @id = $2;
  45. } elsif (defined(@cpn[0])){
  46. if (-e "/tmp/@cpn"){
  47. open FILE, "/tmp/@cpn";
  48. @id = <FILE>;
  49. close FILE;
  50. }
  51. }
  52. $out="OK store-id=http://squid/googlevideo/youtube/id=@id/itag=@itag/mime=@mime/range=@range";
  53.  
  54. #youtube parameter
  55. } elsif ($url=~ m/^https?\:\/\/.*youtube.*(api.*stats.*ads|ptracking|set_awesome|stream_204|watchtime|qoe|atr|player_204|csi_204).*(content_v|video_id|docid|v).*/){
  56. @cpn = m/[=%&?\/]cpn[=%&?\/]([^\&\s]*)/;
  57. @id = m/[=%&?\/](content_v|video_id|docid|v)[=%&?\/]([^\&\s]*)/;
  58. if ($referer !~ m/^https?\:\/\/www\.youtube\.com\/(watch\?v|embed|v)[=%&?\/]([^\&\s\?]*)/){
  59. unless (-e "/tmp/@cpn"){
  60. open FILE, ">/tmp/@cpn";
  61. print FILE @id[1];
  62. close FILE;
  63. }
  64. }
  65. $out = "ERR";
  66.  
  67. } else {
  68. $out="ERR";
  69. }
  70. if ($X[0] =~ m/^http.*/) {
  71. print "$out\n";
  72. print $logfh "$timenow"."out: $out\n" if ($debug>=1);
  73. } else {
  74. print "$chanel $out\n";
  75. print $logfh "$timenow"."out: $chanel $out\n" if ($debug>=1);
  76. }
  77. }
  78. close $logfh if ($debug);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement