#!/usr/bin/perl
# Windows Update Caching - Squid Proxy - By Luiz Biazus
#Tenha a Dignidade de mater os créditos ;-) senão vc atesta sua incompetência =D
#PS: e de agradecer tbm!
$|=1;
while (<>) {
open $fh, ">>/tmp/debug_url_redirect.log";
@X = split;
$url = $X[0];
print $fh "entrada: $url\n";
#WINDOWS UPDATE LOOP PRIMARIO
if ($url =~ /^http:\/\/download.windowsupdate.com/) {
@achar = split(/\//, $url);
$arquivoachar = $achar[$#achar];
$resultado = `/bin/ls /var/www/html/WINUP`;
@array = split(/\n/, $resultado);
$flag = 0;
for $i (0 .. $#array){
if($array[$i] eq "$arquivoachar") {
$flag = 1;
$id=`/usr/bin/id`;
print $fh "Windows Update Redirecionado de $url Para http://IP.IP.IP.IP/WINUP/$arquivoachar user $id\n";
$url = "http://IP.IP.IP.IP/WINUP/$arquivoachar";
print $fh "saida: $url\n";
print "http://IP.IP.IP.IP/WINUP/$arquivoachar\n";
}
$i++;
}
if($flag == 0 ) {
exec("cd /ar/www/html/WINUP && umask 022 && /usr/bin/wget $url && /bin/chmod +r /var/www/html/WINUP/.$arquivochar");
print $fh "saida: arquivoachar $arquivoachar $url\n";
print "$url\n";
}
}
#WINDOWS UPDATE LOOP SECUNDARIO
if ($url =~ /^http:\/\/au.download.windowsupdate.com/) {
@achar = split(/\//, $url);
$arquivoachar = $achar[$#achar];
$resultado = `/bin/ls /var/www/html/WINUP2`;
@array = split(/\n/, $resultado);
$flag = 0;
for $i (0 .. $#array){
if($array[$i] eq "$arquivoachar") {
$flag = 1;
$id=`/usr/bin/id`;
print $fh "AU Windows Update Redirecionado de $url Para http://IP.IP.IP.IP/WINUP2/$arquivoachar user $id\n";
$url = "http://IP.IP.IP.IP/WINUP2/$arquivoachar";
print $fh "saida: $url\n";
print "http://IP.IP.IP.IP/WINUP2/$arquivoachar\n";
}
$i++;
}
if($flag == 0 ) {
exec("cd /var/www/html/WINUP2 && umask 022 && /usr/bin/wget $url && /bin/chmod +r /var/www/html/WINUP2/.$arquivochar");
print $fh "AU saida: arquivoachar $arquivoachar $url\n";
print "$url\n";
}
}
else {
print $fh "nao redirecionado\n";
print "\n";
}
close $fh;
}