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

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   проблеми с установкой модулей (https://forum.antichat.xyz/showthread.php?t=91556)

eLWAux 12.11.2008 20:55

проблеми с установкой модулей
 
привет

нашол пример для роботи через прокси:
Код:

system('cls');

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()

запускаю,.. пишет
Цитата:

Can't locate IO/Socket/Socks.pm in @INC (@INC contains: C:/Perl/lib C:/Perl/site
/lib .) at D:\pr0gramm1n9\perl\my\proxy\_proxy.pl line 3.
BEGIN failed--compilation aborted at D:\pr0gramm1n9\perl\my\proxy\_proxy.pl line
3.
, я так понял что модуль IO::Socket не установлен..

запускаю ppm.bat
ввожу install IO::Socket
и опять ошибка!

что делать?

eLWAux 12.11.2008 21:00

О!

установил вроде..) скачал новий перл и установил..
ppm.bat:
проверка IO::Socket:
Цитата:

Verifying IO-Socket-Socks ...
3 files verified
как я понямаю, я устанил...

запускаю скрипт с надеждой, и ..... пля! опять ошибка:
Цитата:

Can't locate IO/Socket/Socks.pm in @INC (@INC contains: C:/Perl/site/lib C:/Perl
/lib .) at D:\pr0gramm1n9\perl\my\proxy\_proxy.pl line 3.
BEGIN failed--compilation aborted at D:\pr0gramm1n9\perl\my\proxy\_proxy.pl line
3.
что такое?

================================

переделал скрипт
Код:

system('cls');
print '1';

use IO::Socket::Socks;
print '1';
my $proxy_addr = "128.10.10.15";print '1';
my $proxy_port = 3128;print '1';
my $conn_addr = "http://www.mail.ru/";print '1';
my $conn_port = 80;print '1';
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 '1';
print $sock "GET ",$conn_addr," HTTP/1.0\n\n";
 print '1';
while($line = <$sock>) {
 print '1';
  print $line;
 print '1';
}
$socks->close();
print '1';

теперь ошибка:
Цитата:

Can't create Sock: Unknown error at D:\pr0gramm1n9\perl\my\proxy\_proxy.pl line
10.
111111
что я не так делаю?

demond 12.11.2008 23:26

тебе надо установить модуль IO::Socket::Socks
Какой perl ты пользуешь? Может так получить, что ты установил необходимый модуль (кстате в ActiveState он установлен, если по нему есть документация), но запускаешь с помощью другого perl (который прописан в системной переменной). Попробуй запустить скрипт указав полный путь к perl.exe. И вообще ActivePerl лучше всего ставить в корень!
Я когда разюирался с модулем IO::Socket::Socks столкнулся с проблемой другого плана! Он отказался работать с обычной проксей! Только для Socks 5

eLWAux 12.11.2008 23:31

Цитата:

тебе надо установить модуль IO::Socket::Socks
Какой perl ты пользуешь? Может так получить, что ты установил необходимый модуль (кстате в ActiveState он установлен, если по нему есть документация), но запускаешь с помощью другого perl (который прописан в системной переменной). Попробуй запустить скрипт указав полный путь к perl.exe. И вообще ActivePerl лучше всего ставить в корень!
Я когда разюирался с модулем IO::Socket::Socks столкнулся с проблемой другого плана! Он отказался работать с обычной проксей! Только для Socks 5
5.10.0 использую
перл у меня стоит в : c:/perl/ ,тоесть в корне
просто у меня привязка к файлам *.pl стоит на запуск c:/perl/bin/perl.exe, тоесть скрипти норм запускаютса..

вот вроде я модуль установил.., только запускаю и пишет ошибка сооденения с чем то..
(не с прокси и не с сайтом)

demond 13.11.2008 11:29

Кстате, знакомый скрипт. :-) Кажется я знаю где ты его взял! Но он у меня так и не заработал. :-( я там написал, что переделать его надо.
И еще: попробуй запустить: perl -e "use IO::Socket::Socks"; из комендной строки.
Если выдаст ошибку, значит модуль не установлен! А пока он у тебя на его вызов и ругается!
Ты, кстате, в начале скрипта use пишешь?

eLWAux 13.11.2008 19:53

Цитата:

C:\Perl\bin>perl.exe -e "use IO::Socket::Socks";

C:\Perl\bin>
запускаю скрипт
Код:

system('cls');

$num = 0;
sub p {$num++; print $num;}


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

(прокси взял из сайта http://www.checker.freeproxy.ru/checker/last_checked_proxies.php для Socks5)

результат виполнения:
Цитата:

Can't create Sock: at D:\pr0gramm1n9\perl\my\proxy\_proxy.pl line 17.
12345

demond 13.11.2008 22:29

Все дело в том, что по адресу 75.69.203.194:15689 обычный прокси сервер, а не Socks 5. IO-Socket-Socks только для socks 5.

Вот рабочий пример кода для работы с обычной проксей:
Код:

use IO::Socket;
use IO::Socket::INET;

my $conn_addr = "http://www.mail.ru/";

my  $sock = IO::Socket::INET->new(PeerAddr => '75.69.203.194',
                                PeerPort => 'http(15689)',
                                Proto    => 'tcp') or die "Can't create Socks: $!";

print $sock "GET ",$conn_addr," HTTP/1.0\n\n";

while($line = <$sock>) {
print $line;
}

Проверял. Все работает.

eLWAux 14.11.2008 00:04

мдее..
что со мною..

Код:

use IO::Socket;
use IO::Socket::INET;

sub saveFile
{
        open(myFILE,">$_[0]") || die "error: $!";
        print myFILE $_[1];
        close(myFILE);
}

my $conn_addr = "http://www.mail.ru/";

my  $sock = IO::Socket::INET->new(PeerAddr => '75.69.203.194',
                                PeerPort => 'http(15689)',
                                Proto    => 'tcp') or die "Can't create Socks: $!";

print $sock "GET ",$conn_addr," HTTP/1.0\n\n";
$answ='';
while($line = <$sock>) {
$answ.=$line;
}

saveFile('result.html',$answ);

результат:
Цитата:

Can't create Socks: Unknown error at pr2.pl line 13
.
думал.., может прокси дохлий? полошол опять на http://www.checker.freeproxy.ru/checker/last_checked_proxies.php все перепробивал - результат один и тот же((

demond 14.11.2008 10:23

попробуй изменить 14-ю строчку на PeerPort => '15689',


Время: 17:29