Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > В internet через Proxy


Автор: demond 10.11.2008, 16:21
Здравствуйте.  Пытаюсь ходить в internet через proxy. Мой код выглядит так:
Код

use IO::Socket::Socks;
my $proxy_addr = "128.10.10.15";
my $proxy_port = 3128;
my $conn_addr = "http://www.mail.ru/";
my $conn_port = 80;
my $socks = new IO::Socket::Socks(ProxyAddr=>$proxy_addr,
                                  ProxyPort=>$proxy_port,
                                  ConnectAddr=>$conn_addr,
                                  ConnectPort=>$conn_port,
                                  ) or die "Can't create Sock: $!";
 
print $sock "GET ",$conn_addr," HTTP/1.0\n\n";
 
while($line = <$sock>) {
 
  print $line;
 
} 

$socks->close()

Но при запуске тишина. Ответа нет.
Если запускаешь через httpAnalyzer, то через некоторое время вываливается ошибка:
Код

Use of uninitialized value in numeric eq (==) at /opt/ActivePerl-5.8/site/lib/IO/Socket/Socks.pm line 488.
Can't create Sock:  at sock.pl line 9.

Подскажите, в чем дело? Как добиться отчета сервера?
PS LWP через proxy страницу mail.ru получает!

Автор: ginnie 10.11.2008, 16:27
demond, вы уверены, что у Вас именно SOCKS v5 proxy? Меня смутил порт: 3128 - стандартный порт для обычного HTTP-proxy.

Автор: demond 10.11.2008, 16:34
ginnie, нет не уверен. Но думаю что так. А если это обычный proxy-сервер, какой модуль мне, имеет смысл, попробовать.Просто я думал IO::Socket::Socks универсален.

Автор: shamber 10.11.2008, 16:34
ginnie, а мне казалось что 8080 - стандартный порт для HTTP proxy а 3128 как раз для socks smile

Добавлено @ 16:36
IO::Socket универсален smile просто нужно написать недостающие части smile

PS можно еще использовать LWP, у него есть поддержка http proxy

Автор: ginnie 10.11.2008, 16:46
shamber, для socks стандартный 1080.
Цитата(shamber @  10.11.2008,  16:34 Найти цитируемый пост)
IO::Socket универсален  просто нужно написать недостающие части

Разговор про IO::Socket::Socks, а не про IO::Socket  smile

Добавлено @ 16:49
demond, если у Вас обычный HTTP-proxy, можно попробовать сделать как в исходном варианте, только без IO::Socket::Socks, просто через IO::Socket (т.е. соединение устанавливать с proxy, а запрос делать для 'http://www.mail.ru/').

Автор: demond 10.11.2008, 17:06
ginnie,большое спасибо! через IO::Socket прокатило. smile

Автор: shamber 10.11.2008, 17:27
ginnie, про порт, почитал, понял что ошибался smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)