• Publicidad

Protocolos de conexión

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

Protocolos de conexión

Notapor primitivo » 2015-01-31 23:21 @015

Hola, perleros, un saludo.

Estoy intentando usar protocolos de conexión socks 4/5, http, entre otros.
Los datos los tengo en un archivo llamado source.list:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
  1. ROUTER:23
  2. SOCKS4:559
  3. HTTPPOST:3128
  4. SOCKS4:1080
  5. HTTP:8080
  6. SOCKS5:1182
  7. HTTP:3128
  8. HTTPPOST:8080
  9. SOCKS4:9999
  10. HTTPPOST:80
  11. SOCKS5:1080
  12. HTTP:63000
  13. HTTP:8000
  14. HTTPPOST:808
  15. HTTP:80
  16. HTTPPOST:6588
  17. HTTP:6588
  18. SOCKS5:3128
  19. SOCKS5:10080
  20. HTTPPOST:4480
  21. SOCKS4:6664
  22. SOCKS4:63808
  23. HTTP:6667
  24. SOCKS4:19991
  25. SOCKS4:1098
  26. SOCKS4:10000
  27. SOCKS4:4471
  28. HTTP:65506
  29. HTTP:63809
  30. SOCKS5:9090
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

pero al abrir el socket, me pone:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. El nombre solicitado es válido pero no se encontraron datos del tipo solicitado.
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. #Acá el sock.
  3. use IO::Socket;
  4. open(my $DATA,"source.list") or print $!;
  5. my $ip = <STDIN>;
  6. while (my $vector = <$DATA>)
  7. {
  8.         chomp($vector);
  9.         @p = split(":",$vector);
  10.         $p[1] =~ s/;//ig;
  11.         my $s = IO::Socket::INET->new(
  12.                 PeerAddr=>$ip,
  13.                 PeerPort=>$p[1],
  14.                 Proto=>$p[0]) or print "ERROR: $ip:$p[0] ($p[1]) -> $!\n";
  15.         if (<$s>) {
  16.                 print " $_ \n";
  17.         }
  18. }
  19. close(DATA);
  20.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

¿Se pueden usar estos protocolos de esta manera?
primitivo
Perlero nuevo
Perlero nuevo
 
Mensajes: 80
Registrado: 2013-03-22 23:05 @004

Publicidad

Re: Protocolos de conexión

Notapor explorer » 2015-02-01 06:47 @324

El Proto debería ser 'tcp' o 'udp' (no sé si alguno más).

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use autodie;
  3. use IO::Socket;
  4.  
  5. print "IP: "; chomp(my $ip = <STDIN>);
  6.  
  7. open my $DATA, '<', "source.list";
  8.  
  9. while (my $vector = <$DATA>) {
  10.     chomp($vector);
  11.    
  12.     my @p = split ":", $vector;
  13.  
  14.     my $s = IO::Socket::INET->new(
  15.         PeerAddr => $ip,
  16.         PeerPort => $p[1],
  17.         Proto    => 'tcp',
  18.     );
  19.  
  20.     if ($s) {
  21.         print "Conexión con [@p]\n";
  22.     }
  23.     else {
  24.         warn "ERROR: $ip:@p -> $!\n";
  25.     }
  26. }
  27.  
  28. close $DATA;
Coloreado en 0.001 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: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Protocolos de conexión

Notapor primitivo » 2015-02-11 22:00 @958

Lo que deseo es ver conexiones proxy por puertos y protocolos de una IP dada.
primitivo
Perlero nuevo
Perlero nuevo
 
Mensajes: 80
Registrado: 2013-03-22 23:05 @004

Re: Protocolos de conexión

Notapor explorer » 2015-02-12 05:25 @267

No estoy seguro, pero creo que esa información no se transmite a nivel de TCP.

Por ejemplo, a nivel de HTTP, sí que se hace:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $ip = $req->header('Client-IP') || $req->header('Remote-Addr');
  2. if ($req->header('X-Forwarded-For')) {
  3.         $proxy = $ip;
  4.         $ip = $req->header('X-Forwarded-For');
  5. }
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Es decir: la IP original está indicada en una de las cabeceras HTTP que recibimos.

Lo más parecido que he encontrado es un módulo que no siquiera está en CPAN: ProxyChecker, que lo que hace es comparar la IP que se conecta con una lista de IP de proxies conocidos.

WWW::ProxyChecker permite comprobar si una lista de proxies están vivos. Lo mismo que proxyhunter.

Cosa distinta es que quieras montar tu propio proxy, y de esa manera, capturar peticiones externas para ver de dónde vienen. En ese caso, tienes unas cuantas opciones.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Protocolos de conexión

Notapor primitivo » 2015-02-13 06:09 @298

Fenómeno, gracias :D
primitivo
Perlero nuevo
Perlero nuevo
 
Mensajes: 80
Registrado: 2013-03-22 23:05 @004


Volver a Básico

¿Quién está conectado?

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