• Publicidad

Descargar página HTTPS a través de proxy

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

Descargar página HTTPS a través de proxy

Notapor colorado » 2011-06-11 15:56 @705

Llevo intentándolo bastante tiempo y me es imposible descargar una página HTTPS.

Esta es una de las últimas formas que he intentado, con un socket proxy:

http://search.cpan.org/~scr/LWP-Protoco ... l/socks.pm

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/local/bin/perl
  2.  use strict;
  3.  use LWP::UserAgent;
  4.  
  5.  my $ua = new LWP::UserAgent(agent => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.5) Gecko/20060719 Firefox/1.5.0.5');
  6.  $ua->proxy([qw(http https)] => 'socks://socks.yahoo.com:1080');
  7.  my $response = $ua->get("http://www.freebsd.org");
  8.  print $response->code,' ', $response->message,"\n";
  9.  my $response = $ua->get("https://www.microsoft.com");
  10.  print $response->code,' ', $response->message,"\n";
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Instalé el módulo, y al ejecutar el script, recibo un 200 OK de la página HTTP, pero este mensaje de la página HTTPS, 500 Status read failed: Bad file descriptor.

¿Cómo puedo solucionarlo?
¿Algún otro método para descargar HTTPS por medio de un proxy o un proxy-socks?
colorado
Perlero nuevo
Perlero nuevo
 
Mensajes: 73
Registrado: 2010-01-31 14:48 @658

Publicidad

Re: Descargar página HTTPS a través de proxy

Notapor explorer » 2011-06-11 16:41 @736

¿Tienes instalado LWP::Protocol::https?
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: Descargar página HTTPS a través de proxy

Notapor colorado » 2011-06-11 17:12 @758

Sí, y también instalé Crypt::SSLeay;
colorado
Perlero nuevo
Perlero nuevo
 
Mensajes: 73
Registrado: 2010-01-31 14:48 @658

Re: Descargar página HTTPS a través de proxy

Notapor explorer » 2011-06-11 17:33 @773

¿Has visto el ejemplo que viene en la sinopsis del módulo? ¿Has probado a bajarte una página HTTPS de forma directa?

Con esta línea, desde la línea de comandos, puedo recuperar la página principal de Gmail:

Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
  1. perl -MLWP::UserAgent -E '$ua = LWP::UserAgent->new; $res = $ua->get("https://mail.google.com/mail/#inbox"); say $res->content'
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
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: Descargar página HTTPS a través de proxy

Notapor colorado » 2011-06-11 17:54 @787

El problema está al hacerlo con proxy.

Si cambio la línea

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. 6. $ua->proxy([qw(http https)] => 'socks://socks:1080');
  2.  
  3. 6.########$ua->proxy([qw(http https)] => 'socks://socks:1080');
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


la respuesta es 200 Ok, en http y https, es decir, si no utilizo proxy todo funciona bien.
colorado
Perlero nuevo
Perlero nuevo
 
Mensajes: 73
Registrado: 2010-01-31 14:48 @658

Re: Descargar página HTTPS a través de proxy

Notapor explorer » 2011-06-11 18:52 @828

Para usar un proxy externo, en la mayor parte de las veces hay que autenticarse en él, para poder usarlo.

¿Has repasado el hilo Anonimato y descargas que tu mismo empezaste el año pasado?

Yo una vez tuve que salir hacia Internet, por detrás de un proxy, y tenía que hacerlo con un usuario y contraseña, pero fue fácil.

El hacerlo con sockets... pues no tengo ni idea... Lo siento.

Parece que también depende del tipo de proxy que sea...
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: Descargar página HTTPS a través de proxy

Notapor colorado » 2011-06-12 14:50 @660

Gracias por las respuestas, explorer.

Al final conseguí realizarlo. No me termina de convencer, pero funciona con un proxy socks 5.

Pensaba que sería más fácil implementar proxies, pero por lo que veo en Google, hay gente que tiene muchos problemas cuando se enfrenta a un HTTPS.

Te dejo el cómo lo conseguí con un socks 5 operativo, por si por curiosidad quieres probarlo.



Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use LWP::UserAgent;
  2. use LWP::Protocol::http::SocksChain;
  3. use LWP::Protocol::https::SocksChain;
  4.  
  5.  
  6. LWP::Protocol::implementor(http => 'LWP::Protocol::http::SocksChain');
  7. LWP::Protocol::implementor(https => 'LWP::Protocol::https::SocksChain');
  8.  
  9.  
  10. @LWP::Protocol::http::SocksChain::EXTRA_SOCK_OPTS = (
  11.     Chain_Len       => 1,
  12.     Debug           => 0,
  13.    
  14.     Chain_File_Data => ['219.223.252.31:1080:::5'],
  15. );
  16. @LWP::Protocol::https::SocksChain::EXTRA_SOCK_OPTS = (
  17.     Chain_Len       => 1,
  18.     Debug           => 0,
  19.     Chain_File_Data => ['219.223.252.31:1080:::5'],
  20. );
  21.  
  22.  
  23.  my $ua = new LWP::UserAgent(agent => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.5) Gecko/20060719 Firefox/1.5.0.5');
  24.  
  25.  
  26. #$ua->proxy([qw(http https)] => 'socks://');
  27.  
  28.  my $response = $ua->get("http://ipcheckit.com");
  29.  print $response->content,' ', $response->message,"\n";
  30.  my $response = $ua->get("https://ipcheckit.com");
  31.  print $response->content,' ', $response->message,"\n";
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
colorado
Perlero nuevo
Perlero nuevo
 
Mensajes: 73
Registrado: 2010-01-31 14:48 @658

Re: Descargar página HTTPS a través de proxy

Notapor explorer » 2011-06-12 16:43 @738

¿Y usando otros módulos, como LWP::Protocol::socks?
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: Descargar página HTTPS a través de proxy

Notapor colorado » 2011-06-13 08:00 @375

¿Y usando otros módulos, como LWP::Protocol::socks?


Esa sería la forma en la que quiero hacerlo, pero no me funciona.


Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use strict;
  2.  use LWP::UserAgent;
  3.  use LWP::Protocol::socks;
  4.  use LWP::Protocol::https;
  5.  use Crypt::SSLeay;
  6.  
  7.  
  8. my $ua = new LWP::UserAgent(agent => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.5) Gecko/20060719 Firefox/1.5.0.5');
  9.  $ua = LWP::UserAgent->new(ssl_opts => { verify_hostname => 1 });
  10.  $ua->proxy([qw(http https)] => 'socks://219.223.252.31:1080');
  11.  my $response = $ua->get("http://ipcheckit.com");
  12.  print $response->code,' ', $response->message,"\n";
  13.  my $response = $ua->get("https://ipcheckit.com");
  14.  print $response->code,' ', $response->message,"\n";
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Respuesta:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
200 OK
500 Status read failed: Bad file descriptor
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
colorado
Perlero nuevo
Perlero nuevo
 
Mensajes: 73
Registrado: 2010-01-31 14:48 @658

Re: Descargar página HTTPS a través de proxy

Notapor explorer » 2011-06-13 09:26 @435

¿Esto no te funciona?

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use strict;
  3. use LWP::UserAgent;
  4.  
  5. my $ua = new LWP::UserAgent(
  6.     agent => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.5) Gecko/20060719 Firefox/1.5.0.5',
  7. );
  8.  
  9. $ua->proxy([qw(http https)] => 'socks://219.223.252.31:1080');
  10.  
  11. my $response = $ua->get('http://ipcheckit.com');  print $response->code,' ', $response->message,"\n";
  12. my $response = $ua->get('https://ipcheckit.com'); print $response->code,' ', $response->message,"\n";
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
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

Siguiente

Volver a Básico

¿Quién está conectado?

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