• Publicidad

Redirector para squid

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Notapor explorer » 2009-06-17 12:07 @546

El '_' es una cuestión estética... sirve para ayudar a leer números grandes.

No hay diferencia en el resultado de escribir
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $deuda_nacional = 3983483485;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

que
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $deuda_nacional = 3_983_483_485;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

pero se lee más cómodamente :)
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Publicidad

Notapor angelruiz » 2009-06-23 12:46 @574

Disculpen la demora en informar.

Actualicé unas cuantas cosas al script más que todo necesidades personales. Por ejemplo, la lista negra de URL y hay que redireccionar solo salen a una lista de IP en específico. La URL del aviso temporal va codificada pues necesitaba pasar unas variables...

Lo que note extraño es que no me respeta el tiempo de redirección temporal. Estoy testeando a ver cuál sería el problema.

He estado evaluando y planteo si se podría enviar el aviso temporal por ejemplo cada hora independientemente de si hay o no actividad en la navegación.

Explorer: es increíble lo que ayudan los módulos, son muy prácticos y te ahorran un montón de tiempo. Lo otro que quería decirles es que el script es mucho mas rápido que el original.

Saludos.
angelruiz
Perlero nuevo
Perlero nuevo
 
Mensajes: 32
Registrado: 2009-06-03 08:33 @398

Notapor angelruiz » 2009-06-23 13:10 @590

Me sucede lo siguiente:

Arranco mi PC con Linux; carga los servicios entre ellos squid que a su vez carga el redirector.

Cuando un usuario empiece a navegar debería aparecerle el aviso temporal, pero eso aveces no sucede. De 4 reinicios lo hace 1 o dos veces.

A ver si entendí lo siguiente:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $tiempo_de_aviso = 3_600;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Son 3600 segundos.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
if (time - $hay_que_controlar{$ip} >= $tiempo_de_aviso) {
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Quiere decir que si el tiempo de inactividad es mayor o igual a 3600 redirige la IP al aviso.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$hay_que_controlar{$ip} = time;                             # Recordamos última vez que la hemos visto
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Ok, eso esta claro.

No veo dónde podría estar el problema. A no ser que otro software aparte del de los navegadores tenga actividad por puerto 80, el cual redirecciono a squid port 8080.

Por eso y para garantizar que el aviso llegue sería conveniente que el aviso salga cada hora independientemente de la actividad del que navegue.

Voy a trabajarlo esta noche a ver si lo logro.
Saludos.
angelruiz
Perlero nuevo
Perlero nuevo
 
Mensajes: 32
Registrado: 2009-06-03 08:33 @398

Notapor angelruiz » 2009-06-23 14:44 @655

La variable
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $inicio             = time - $tiempo_de_aviso;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


¿Dónde la usas?

Estoy un poco confundido.
angelruiz
Perlero nuevo
Perlero nuevo
 
Mensajes: 32
Registrado: 2009-06-03 08:33 @398

Notapor explorer » 2009-06-23 14:46 @657

Quizás sea un problema con la inicialización del valor de $hay_que_controlar.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor explorer » 2009-06-23 14:48 @658

angelruiz escribiste:La variable
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $inicio             = time - $tiempo_de_aviso;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


¿Dónde la usas?

Estoy un poco confundido.
En la línea 39.

La uso para inicializar el valor de las visitas a un tiempo que es el de ahora menos $tiempo_de_aviso, por lo que la primera vez que se conecten, les saldrá el aviso.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Redirector para squid

Notapor angelruiz » 2009-07-08 15:01 @667

Hola amigos.
El redirector se esta portando de lujo. pero quiero consultarles algo.

Tengo una lista de URL a bloquear. Ejemplo:

http://www.loquesea.com

Anda perfecto, pero si solicito

http://www.loquesea.com/otro_contenido/aqui.jpg

no bloquea porque no coincide con el URL de mi lista.

¿La solución sería algo así como esto?

if ($url =~ /$_/) {

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. %esta_en_lista_negra   = map {
  2. $_ . '/' => 1           # Suponemos que las URL NO tienen la '/' final, así que se las ponemos
  3.                          }
  4.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
angelruiz
Perlero nuevo
Perlero nuevo
 
Mensajes: 32
Registrado: 2009-06-03 08:33 @398

Re: Redirector para squid

Notapor explorer » 2009-07-08 15:58 @707

Pues eso es un problema... tendrías que hacer un bucle por todas las URL en la lista negra, con lo que perdemos las ventajas de usar diccionarios.

Una solución sería pasar la $url que recibimos a través de una expresión regular que filtrase todo aquello que va después de la primera barra, para que quede como las URL que queremos filtrar.

En la línea 70, con algo como
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$url =~ s{(http://[\w.-]+/?).*}{$1};
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Con esa expresión eliminamos todo aquello que sigue a la primera barra del recurso, con lo que ya podemos seguir con el resto del programa.
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Redirector para squid

Notapor angelruiz » 2009-08-04 21:36 @942

Hola amigos.

Les comento que todo lo logrado en este post lo adapté a la distro brazilfw; le agregué unas cuantas funciones nuevas orientadas a necesidades puntuales para el tipo de trabajo que hace mi server; no las he publicado para no alterar el desarrollo de este post.

Ahora bien, he estado tratando de hacer lo siguiente:

Existe el archivo llamado block que contiene la lista de IP a bloquear;
ejemplo:
    192.168.50.33
    192.168.50.13

Lo que he intentado hacer es poder agregarle un comentario al lado del IP para tener referencia de qué usuario se trata. Ejemplo:

    192.168.50.33 #angel
    192.168.50.13 #ruiz

el resultado obtenido es:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
$VAR1 = {
          '192.168.50.223 #angel' => 1,
          '192.168.50.263 #ruiz' => 1
        };
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Lo que trato de hacer es que me ignore lo que esté antecedido de #; he intentado varias formas sin obtener resultados.

Si por favor me tiran una luz les estaré agradecido...

Saludos.
Última edición por explorer el 2009-08-06 09:24 @433, editado 1 vez en total
Razón: Ortografía, sintaxis, anglicismos, bloques de código
angelruiz
Perlero nuevo
Perlero nuevo
 
Mensajes: 32
Registrado: 2009-06-03 08:33 @398

Re: Redirector para squid

Notapor angelruiz » 2009-08-04 21:53 @954

:D :D
Resuelto:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
%hay_que_bloquear      = map {
                          $_ =~ s/^([0-9.]+).*$/$1/;
                          $_ => 1
                          }
 
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


¡¡Quedo perfecto!!
angelruiz
Perlero nuevo
Perlero nuevo
 
Mensajes: 32
Registrado: 2009-06-03 08:33 @398

AnteriorSiguiente

Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados

cron