Whirt
04.04.2009, 13:54
В общем, долгое время пользовался классическим кодом для включения поддержки сокс, который приведен ниже.
Однако, тут стал натыкаться на некоторые соксы, которые присылают неправильный ответ в самом конце, и в них бесполезно что-либо писать и считывать данные, ответ будет пустым.
пример таких соксов:
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.
Кто нибудь сталкивался с такой проблемой? С таким соксом просто дальше работать невозможно, хотя через браузер все норм..
Однако, тут стал натыкаться на некоторые соксы, которые присылают неправильный ответ в самом конце, и в них бесполезно что-либо писать и считывать данные, ответ будет пустым.
пример таких соксов:
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.
Кто нибудь сталкивался с такой проблемой? С таким соксом просто дальше работать невозможно, хотя через браузер все норм..