Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   [ perl ] perl+socks, трабл тут возник (https://forum.antichat.xyz/showthread.php?t=114451)

Whirt 04.04.2009 13:54

[ perl ] perl+socks, трабл тут возник
 
В общем, долгое время пользовался классическим кодом для включения поддержки сокс, который приведен ниже.
Однако, тут стал натыкаться на некоторые соксы, которые присылают неправильный ответ в самом конце, и в них бесполезно что-либо писать и считывать данные, ответ будет пустым.

пример таких соксов:

Код:

91.76.59.174:8363
95.72.95.179:8906
95.78.249.233:8608

Код:

#!/usr/local/bin/perl
use IO::Socket::Socks;


my $proxy = new IO::Socket::Socks(ProxyAddr=>"91.76.59.174",
                                ProxyPort=>8363,
                                ConnectAddr=>"perl.org",
                                ConnectPort=>80,
                                AuthType=> 'none',
                                Timeout => '20',
                                SocksDebug => '1' );

if (!defined($proxy))
{
    die($SOCKS_ERROR);
    exit(1);
}

print $proxy "GET / HTTP/1.1\r\n".
            "Host: perl.org\r\n".
            "Connection: close\r\n\r\n";

my $databuf='';

$databuf .= $_ while <$proxy>;

close $proxy;

print $databuf;

Дебаг подключения привожу ниже:
http://s44.radikal.ru/i103/0904/85/b337fbbf67a4.gif

Самый нижний столбик, поле Vers. Сокс вписывает туда некорректное значение..
по идее должен писать туда 0x05, но пишет почему-то 0x00.

Кто нибудь сталкивался с такой проблемой? С таким соксом просто дальше работать невозможно, хотя через браузер все норм..

Vid0k 04.04.2009 13:57

вопрос не в тему как получить такой дебаг запросов?

Whirt 04.04.2009 13:59

Там дебаг включен
Цитата:

SocksDebug => '1'

zeppe1in 04.04.2009 14:06

я как то пытался сделать потдержку соксов без модулей на сокетах чисто, и так у меня не чего и не вышло, потому что соксы возвращают что за хотят нифига не попротоколу). Как и в этом случае, версия 0 скорее всего значит, что сокс может рабоатать как по 4ой версии так и по 5ой.

Kaimi 04.04.2009 16:25

Цитата:

по идее должен писать туда 0x05, но пишет почему-то 0x00.

Кто нибудь сталкивался с такой проблемой? С таким соксом просто дальше работать невозможно, хотя через браузер все норм..
Даже если туда 0х05 затолкать все равно работать не будет

Whirt 04.04.2009 16:54

Причина в самом IO::Socket::Socks,
+отснифал еще.
http://s47.radikal.ru/i115/0904/87/5e712484f4bb.jpg

он шлет неполные пакеты ,на куски разрывает

, изза этого и глюки с некоторыми socks-серверами.


вообще, модуль уродский если честно, держит только 5 сокс.
нашел ему альтернативу, держит socks 4/5:

http://cpan.uwinnipeg.ca/dist/SOCKS
, сейчас буду тестить

Vid0k 04.04.2009 16:55

чем можно в никсах пакеты снифать?

Whirt 04.04.2009 16:59

Wireshark, например. Снифалось им как раз под никсами.

Whirt 12.04.2009 23:40

http://cpan.uwinnipeg.ca/dist/SOCKS этот модуль тоже уродско работает с соксами, такое же дробление данных наблюдается, многие socks-сервера откидывают такие запросы,
так что выход - пишем код ручками.


Время: 00:24