Спасибо..) Работает..) А нельзя ли очистить часть экрана..?! Например, только последнюю строчку... Конечно всё задуманное можно и с system("cls"); замутить, но если есть возможность удалять часть сообщений, то я не хочу изобретать велостпед
такая проблема ... получаю в ответ от сервера ошибку ... Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that <machineKey> configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster. перевод : Подтверждение ViewState MAC неудачу. Если это приложение размещается веб-фермы или кластере, убедитесь, что конфигурация <machineKey> задает тот же validationKey и проверка алгоритма. AutoGenerate не может быть использована в кластере. Как исправить ?
Вопрос по потокам: В скрипте задаётся массив @bas с некоторым количеством элементов... Создаю процедуру, которая извлекает по одному элементу массива и дописывает его в файл... Сама процедура: PHP: sub gogo { my ($name) = @_; while($elm = shift(@bas)) { open(OUT, ">> $name.txt"); print OUT "$elm\r\n"; close(OUT); } } Далее создаю несколько потоков, выполняющих функцию gogo и прописываю ждать завершения работы всех потоков... PHP: foreach $ac (@acc) { push @threads, threads->create(\&gogo, $ac); } foreach my $thread (@threads) { $thread->join(); } Каждый поток создаёт свой файл, куда записывает элементы массива, которые он обработал (извлёк из массива)... Что я ожидал от работы этого скрипта..?? Ожидал я, что элементы массива @bas будут распределены по файлам потоков.. тоесть первый поток вытащил первый элемент, записал в свой файл, второй поток - второй элемент, и записал уже в свой файл.. и т.д. А в результате каждый поток пробегает весь массив целиком... Причём я даже пробовал каждому из потоков задать разные задержки.. Почему так происходит, я же извлекаю элементы с помощью shift, который удаляет элемент..?! Как лучше реализовать задуманное..?!
Так что это может быть ... проверил весь скрипт тысячу раз ... серверу уходит верный запрос ... а в ответ такое ... Может быть Win 7 ???
Вроде разобрался как с соксами работать, но не хочет оно на сайт заходить, заходит только на ип сервера =\ Code: my $sock = new Net::SOCKS(socks_addr => '123.123.123.123', socks_port => 9671, protocol_version => 5); my $f= $sock->connect(peer_addr => '2ip.ru', peer_port => 80); print "connect status: ", Net::SOCKS::status_message($sock->param('status_num')), "\n"; if ($sock->param('status_num') == SOCKS_OKAY) { print $f "clintdw\n"; while (<$f>) { print } $sock->close(); }
1NtR0 Что значит " заходит только на ип сервера" ? А что за херню вы посылаете заместо http-запроса? BluR А причем тут Perl? Fepsis Последнюю строку можно просто выводить без переноса строки: Code: perl -e"$|++; print qq($_[COLOR=YellowGreen]\r[/COLOR]) and sleep 1 for 1..20"
Заходит например не на ww.2ip.ru а на 188.40.74.9 (это ип адрес сервера, на котором находиться 2ip.ru) ВОт и я незнаю что за херня, знал бы не спрашивал.. Как правильно сделать ?
1NtR0 Code: print $f "GET http://2ip.ru/ HTTP/1.1\n" . "Host: 2ip.ru\n\n"; С HTTP-протоколом начинай знакомиться. (;
1NtR0, вооружайтесь RFC и снифером и смотрите, какие пакеты отсылаются и принимаются. Для примера работы с соксами на перле можете посмотреть Toolza от Pashkela. Там все на сокетах реализовано
При том что это в ответ получай perl скрипт ... хотелось бы знать не может ли быть в нём проблемы ??? может я что то недоотправляю ... как я понимаю ошибка в том что мак адрес не соответствует тому для которого сгенерированна переменная , которая в свою очередь выдергивается из страницы которую скрипт получает до этого ... да и если бы переменная была бы не верной выдавалась бы другая ошибка ... P.s : с perl знаком от силы неделю .... поэтому и спрашиваю ...
Мой код пишет http-запрос в сокет, а выводить что-то должен твой код. Кстати, если работешь с socks5, то попробуй еще модуль IO::Socket::Socks, он поудобней: Code: use strict; use warnings; use IO::Socket::Socks; my $socks = new IO::Socket::Socks( ProxyAddr => '98.203.236.60', ProxyPort => 43981, ConnectAddr => '2ip.ru', ConnectPort => 80 ) or die 'can\'t conect to proxy'; print $socks "GET / HTTP/1.1\n" . "Host: 2ip.ru\n\n"; print while <$socks>; $socks->close(); BluR Тут кодеры на вопросы отвечают, а не экстрасенсы. Показать свой сверхсекретный код не желаешь? (;
Ничего секретного ... вот кусок кода ... весь код большой ... да и до этого есть только гет запросы которые в ответ получают нормальные страницы ... $answ =~ s/\s*.*VIEWSTATE"\svalue="//igxsm; $answ =~ s/"\s*.*\s*//igxsm; my $VIEWSTATE = uri_escape("$answ"); $eve =~ s/\s*.*id="__EVENTVALIDATION"\s*value="//igxsm; $eve =~ s/"\s*.*\s*//igxsm; my $EVENTVALIDATION = uri_escape("$eve"); my $reg = $ua->post("http://profil.centrum.cz/icq.aspx", ['__EVENTTARGET' => , '__EVENTARGUMENT' => , '__VIEWSTATE' =>$VIEWSTATE, 'ua_icqstatus' => '1', 'ua_icq' => , 'icqpassword' => , 'passwordset' => '0', 'ua_securitycode_question' =>$scr, 'ua_securitycode_answer' =>$captcha, 'btnconnect' => '', '__VIEWSTATEENCRYPTED=' => , '__EVENTVALIDATION' =>$EVENTVALIDATION,])->as_string;
Очень прошу помощи. Хотелось бы сделать небольшую регистрацию на сайте и запретить регистрацию ников меньше 5 символов. Написал: Code: if ($domen => 5) { # если больше или равно } else { #если меньше }
Доброго времени суток!) Вот пишу скрипт, обрабатывающий определенным образом инет страницу(указываем урл). Суть проблемы в том, что я не знаю какой модуль использовать для парсинга страниц? И что делать, например, с сылками вида www.site.ru/page1/ , где не указан конкрентный файл?