LINUX.ORG.RU

TOR HTTP CONNECT


0

0

Можно ли через TOR подключаться к произвольному порту и работать с произвольным протоколом посредством HTTP CONNECT, например зайти в IRC?

Перемещено JB из Talks

anonymous

Ответ на: комментарий от PoMbl4

Если бы его нашел то про TOR бы не спрашиал..

anonymous
()
Ответ на: удаленный комментарий

#!/usr/bin/perl
use warnings;
use strict;
use threads;
use IO::Socket::INET;
use IO::Select;

my $server = IO::Socket::INET->new(
LocalPort => 6989,
Reuse => 1,
Listen => SOMAXCONN
) || die $@;

while (my $client = $server->accept) {
async(\&servwork, $client)->detach();
}

sub servwork {
my $client = shift;
my $peerhost = $client->peerhost;
print "Connected from $peerhost\n";
sysread($client,my $buff, 1024);
my($host,$port) = $buff =~ /^CONNECT (.+):(\d+)/;
unless ($host && $port) {
warn "host or port undef\n";
return
}
warn "$host $port\n";
my $sock = IO::Socket::INET->new(
PeerAddr => 'localhost',
PeerPort => 9050,
Timeout => 8
);
unless ($sock) { warn $@; return }
my $aton;
unless ($aton = inet_aton($host)) {
warn "cant resolv host\n";
return
}
syswrite($sock,"\x04\x01".pack('n',$port).$aton."\x00");
unless (sysread($sock,$buff,8)) {
warn "cant read\n";
return
}
unless ("\x00\x5a" eq substr($buff,0,2)) {
warn "запрос не предоставлен\n";
return
}
#тут клиенту надо отвечать Connection-established или как то так
my $select = IO::Select->new($sock);
$select->add($client);

while(my @ready = $select->can_read) {
for my $handle (@ready) {
if ($handle eq $client) {
if (sysread($client, $buff, 1024)) {
syswrite($sock, $buff)
} else {
close $sock;
close $client;
return
}
}
if ($handle eq $sock) {
if (sysread($sock, $buff, 1024)) {
syswrite($client,$buff)
} else {
close $sock;
close $client;
return
}
}
}
}
}

PoMbl4
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.