• Publicidad

Control de navegación con proxy

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

Control de navegación con proxy

Notapor angelruiz » 2010-05-09 22:46 @990

Hola amigos.

Hace un tiempo con la ayuda de este hermoso foro, principalmente con la colaboración especial del amigo explorer logré terminar un redirector para Squid, el cual a la fecha actual ha evolucionado y es parte de los addons de una minidistro GNU/Linux llamada BrazilFW. Pero acontece que dicho redirector depende 100% de Squid, con lo cual obliga a quien quiera usarlo a instalar Squid. Por tal motivo pido de su ayuda u orientación para hacer un proxy que se encargue directamente de redirecciones, avisos y bloqueos sin que dependa de Squid.

Primeramente me conseguí con este módulo: HTTP::Proxy. Lo instalé.

Creé el archivo proxy.pl
le di permisos con chmod 755 proxy.pl
luego lo ejecuto así: ./proxy.pl

Y se queda allí, no me da errores pero se queda "procesando" y no dice nada, cuando verifico qué puertos están abiertos en el server Linux no me aparece el puerto 3128 abierto.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/local/bin/perl
  2.  
  3.  use HTTP::Proxy;
  4.  
  5.   # initialisation
  6.   my $proxy = HTTP::Proxy->new( port => 3128 );
  7.  
  8.   # alternate initialisation
  9.    my $proxy = HTTP::Proxy->new;
  10.   $proxy->port( 3128 ); # the classical accessors are here
  11.  
  12.   # this is a MainLoop-like method
  13.   $proxy->start;
  14.  
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Si tienen una idea, corrección o sugerencia se los agradecería.

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

Publicidad

Re: Control de navegación con proxy

Notapor explorer » 2010-05-10 04:25 @225

Has copiado literalmente la sinopsis que ofrece el módulo, pero si te fijas bien, estás creando dos objetos proxy. Solo necesitas uno, pasarle los argumentos, y entrar en el bucle con start().

Yo he probado solo con
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use diagnostics;
  5.  
  6. use HTTP::Proxy;
  7.  
  8. my $proxy = HTTP::Proxy->new(
  9.     port => 3128,
  10. );
  11.  
  12. $proxy->start();
  13.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
y ya aparece un proceso escuchando en el 127.0.0.1:3128 (visto con netstat -anp|less)
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Control de navegación con proxy

Notapor angelruiz » 2010-05-11 21:57 @956

Gracias por tu respuesta.

Pasa que en brazilfw no corre adecuadamente cpan por lo cual monto los modulos manualmente uno por uno y logre que no me de ningun error cuando corro el proxy, pero al verificar no me levanta el puerto 3128.

probare en una distro como debian para hacer pruebas pero la meta es en brazilfw.
angelruiz
Perlero nuevo
Perlero nuevo
 
Mensajes: 32
Registrado: 2009-06-03 08:33 @398

Re: Control de navegación con proxy

Notapor angelruiz » 2010-05-11 23:47 @033

¡¡¡Por fin¡¡¡ cpan corre en el buildtree de brazilfw.

Solo me queda hacer pruebas.
Saludos.
angelruiz
Perlero nuevo
Perlero nuevo
 
Mensajes: 32
Registrado: 2009-06-03 08:33 @398

Re: Control de navegación con proxy

Notapor angelruiz » 2010-05-12 14:31 @646

el script me da este error.


Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
[interplus]/usr/lib/perl5/5.8.8# ./proxy.pl
Uncaught exception from user code:
        Cannot initialize proxy daemon: No such file or directory at /usr/lib/perl5/5.8.8/HTTP/Proxy.pm line 271.
 at /usr/lib/perl5/5.8.8/HTTP/Proxy.pm line 271
        HTTP::Proxy::_init_daemon('HTTP::Proxy=HASH(0x8995a68)') called at /usr/lib/perl5/5.8.8/HTTP/Proxy.pm line 234
        HTTP::Proxy::init('HTTP::Proxy=HASH(0x8995a68)') called at /usr/lib/perl5/5.8.8/HTTP/Proxy.pm line 209
        HTTP::Proxy::start('HTTP::Proxy=HASH(0x8995a68)') called at ./proxy.pl line 14
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


La línea 271 de Proxy.pm es la siguiente:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
 my $daemon = HTTP::Daemon->new(%args)
      or die "Cannot initialize proxy daemon: $!";
    $self->daemon($daemon);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


La línea 234 es:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$self->_init_daemon if ( !defined $self->daemon );
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


De verdad no tengo idea de qué sucede.
angelruiz
Perlero nuevo
Perlero nuevo
 
Mensajes: 32
Registrado: 2009-06-03 08:33 @398

Re: Control de navegación con proxy

Notapor explorer » 2010-05-12 16:33 @731

Me parece que el error viene desde el módulo IO::Socket::INET, indicando que la dirección ya está ocupada (traducción literal). Más bien creo que será que el puerto ya está ocupado.

Recuerda que si estás intentando ocupar un puerto inferior a 1024 debes tener privilegios de root.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Control de navegación con proxy

Notapor angelruiz » 2010-05-15 20:54 @912

Efectivamente, amigo explorer: de allí radica el problema.
angelruiz
Perlero nuevo
Perlero nuevo
 
Mensajes: 32
Registrado: 2009-06-03 08:33 @398


Volver a Básico

¿Quién está conectado?

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

cron