Forum Webscript.Ru

Программирование => Perl => Тема начата: 09h от 09 Мая 2006, 20:20:24

Название: socks5 прокси...
Отправлено: 09h от 09 Мая 2006, 20:20:24
народ караул... выручайте, уже месяц разобратся не могу

подключаюсь к прокси, пишу ему 05 01 00, он отвечает 05 00, потом пихаю это 05 01 00 01 сd bc 99 79 35 31 39 30, отвечает 05 00 00 01 30 28 99 02 35 31 и сразу после этого еще 2a 01 73 10 00 04 00 00 00 01 (это приветствие от сервера к которому и надо подключатся через проксю), а вот дальше не пойму... подключится подключился а как чтонить ($data) теперь отправить ? пробовал по всякому и даже никакого ответа не приходило#!/usr/bin/perl -wT

use Socket;

$host = "69.47.103.139"; #прокси
$port = "58";

print "Content-type: text/html\\n\\n";

socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname(\'tcp\'));

$iaddr = inet_aton($host);
$paddr = sockaddr_in($port, $iaddr);
connect(SOCK, $paddr);

$msg =
"\\x05".
"\\x01".
"\\x00";

send (SOCK, "$msg", 0);

sysread(SOCK,$answer_data,1024); # читаем ответ от сервера

print_data($answer_data); # печатаем ответ от сервера

$msg =
"\\x05".
"\\x01".
"\\x00".
"\\x01".
"\\xcd\\xbc\\x99\\x79". # ip
"\\x35\\x31\\x39\\x30"; # port

send (SOCK, "$msg", 0);

sysread(SOCK,$answer_data,1024); # читаем ответ от сервера
# тут отвечает прокси сервер

print "
";
print_data($answer_data); # печатаем ответ от сервера

sysread(SOCK,$answer_data,1024); # читаем ответ от сервера
# а тут приходит приветствие от сервера icq с которым мне и надо пообщатся через проксю

print "
";
print_data($answer_data); # печатаем ответ от сервера

close(SOCK);

#FUNCTIONS

sub print_data() { # выводим данные в hex

my ($data)=@_;
my $i=0;

foreach(split(//,$data)) {
print unpack(\'H8\',$_)." ";
$i++;
if ($i eq 16) {
print "\\n";
$i=0;
}

}

}
Вот это надо отправить через проксю серверу icq который со мной здаровается:

\\x00\\x2a\\x01\\x13\\x5a\\x00\\x7c\\x00\\x00\\x00\\x01\\x00\\x01\\x00\\x09\\x32\\x34\\x37\\x32\\x37\\x32\\x39\\x35\\x34\\x00\\x02\\x00\\x05\\xc0\\x14\\xb0\\xf2\\x0e\\x00\\x03\\x00\\x2c\\x46\\x61\\x6b\\x65\\x20\\x69\\x63\\x71\\x2d\\x63\\x6c\\x69\\x65\\x6e\\x74\\x20\\x73\\x70\\x65
\\x63\\x69\\x61\\x6c\\x20\\x66\\x6f\\x72\\x20\\x70\\x6f\\x69\\x7a\\x6f\\x6e\\x2e\\x6e\\x65\\x74\\x2e\\x72\\x75\\x20\\x3d\\x29\\x00\\x16\\x00\\x02\\x01\\x0a\\x00\\x17\\x00\\x02\\x00\\x04\\x00\\x18\\x00\\x02\\x00\\x41\\x00\\x19\\x00\\x02\\x00\\x01\\x00\\x1a\\x00\\x02\\x0c\\xd1\\x00
\\x14\\x00\\x04\\x00\\x00\\x00\\x55\\x00\\x0f\\x00\\x02\\x65\\x6e\\x00\\x0e\\x00\\x02\\x75\\x73

без прокси с icq сервером общаюсь нормально
никак не могу догнать как отправить эти данные
описание протокола (http://ruinst.net.ru/ner/socks5.html)

или подскажите как сделать это через IO::Socket::Socks
#!/usr/bin/perl -wT

use IO::Socket::Socks;

my $socks = new IO::Socket::Socks(ProxyAddr=>"69.47.103.139", ProxyPort=>"58", ConnectAddr=>"login.icq.com", ConnectPort=>"5190", );

$socks->close();
получить главную страницу гугла получается и послушать приветствие от сервера аськи тоже, но вот отправить эти данные (\\x00\\x2a\\x01\\x13\\x5a\\x00\\x7c\\x00\\x00\\x00\\x01\\x00\\x01\\.......) серверу аськи не получается
Название: socks5 прокси...
Отправлено: 09h от 10 Мая 2006, 04:14:56
Люди есть тут ктонибудь?! отзавитесь работа горит...
помогите разобратся с этим при использовании use Socket; как через сокс5прокси затолкать этот кусок бреда "\\x00\\x2a\\x01\\x13\\x5a\\x00\\x7c\\x00\\x00\\x00\\x01\\...." в login.icq.com по 5190 порту после приветствия и получить ответ? готов заплатить!
ICQ 4773590
Название: socks5 прокси...
Отправлено: 09h от 12 Мая 2006, 17:43:56
ну что никто помоч не могет? хотяб ктонить чтонить скажите... типа "хз как это сделать, попробуй ..."
Название: socks5 прокси...
Отправлено: arto от 12 Мая 2006, 18:16:51
perldoc IO::Socket::Socks не поможет?
Название: socks5 прокси...
Отправлено: 09h от 12 Мая 2006, 19:44:43
print $socks " \\x00\\x2a\\x01\\x13\\x5a\\x00\\x7c\\x00\\x00\\x00\\x01\\x00\\x01\\x00\\x09\\x32\\x34
\\x37\\x32\\x37\\x32\\x39\\x35\\x34\\x00\\x02\\x00\\x05\\xc0\\x14\\xb0\\xf2\\x0e\\x00
\\x03\\x00\\x2c\\x46\\x61\\x6b\\x65\\x20\\x69\\x63\\x71\\x2d\\x63\\x6c\\x69\\x65\\x6e
\\x74\\x20\\x73\\x70\\x65\\x63\\x69\\x61\\x6c\\x20\\x66\\x6f\\x72\\x20\\x70\\x6f\\x69
\\x7a\\x6f\\x6e\\x2e\\x6e\\x65\\x74\\x2e\\x72\\x75\\x20\\x3d\\x29\\x00\\x16\\x00\\x02
\\x01\\x0a\\x00\\x17\\x00\\x02\\x00\\x04\\x00\\x18\\x00\\x02\\x00\\x41\\x00\\x19\\x00
\\x02\\x00\\x01\\x00\\x1a\\x00\\x02\\x0c\\xd1\\x00\\x14\\x00\\x04\\x00\\x00\\x00\\x55
\\x00\\x0f\\x00\\x02\\x65\\x6e\\x00\\x0e\\x00\\x02\\x75\\x73";
$data = <$socks>;

ответа нету, только приветствие от сервера аськи после конекта, если без прокси то отвечает. для теста делаю GET http://google.ru дает страницу. видать GET прокся получает и понимает что делать надо а вот просто чтонибудь передать ...
Название: socks5 прокси...
Отправлено: xames от 12 Мая 2006, 20:38:32
search.cpan.org -> ICQ
ищи бота аськи в инете, должны быть, если есть то смотри реализацию работы с проксей. Если очень захочешь - найти сможешь.
Так же ищи ICQ клиент на перле, где то видел.
Название: socks5 прокси...
Отправлено: 09h от 14 Мая 2006, 19:54:28
проблема то не с аськой а сокс5 прокси не доходит сообшение "\\x00\\x2a\\x01\\x13\\x....." до сервера, или ответ не идет через проксю
Название: socks5 прокси...
Отправлено: xames от 14 Мая 2006, 21:50:52
Все же возьми из тех скриптов готовую реализацию и не парься.