ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

05.01.2010, 04:41
|
|
Постоянный
Регистрация: 17.09.2008
Сообщений: 562
Провел на форуме: 6962560
Репутация:
536
|
|
Вопрос по потокам:
В скрипте задаётся массив @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, который удаляет элемент..?! Как лучше реализовать задуманное..?!
|
|
|

05.01.2010, 05:09
|
|
Members of Antichat - Level 5
Регистрация: 09.10.2006
Сообщений: 1,698
Провел на форуме: 9098076
Репутация:
4303
|
|
Ох уж эти потоки( Точно не помню, но вроде должно помочь
use threads::shared;
my @bas : shared;
|
|
|

05.01.2010, 16:42
|
|
Познающий
Регистрация: 06.08.2009
Сообщений: 56
Провел на форуме: 425261
Репутация:
29
|
|
Сообщение от BluR
такая проблема ...
получаю в ответ от сервера ошибку ...
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 не может быть использована в кластере.
?
Так что это может быть ... проверил весь скрипт тысячу раз ... серверу уходит верный запрос ... а в ответ такое ... Может быть Win 7 ???
|
|
|

05.01.2010, 19:14
|
|
Участник форума
Регистрация: 14.04.2007
Сообщений: 197
Провел на форуме: 1122391
Репутация:
209
|
|
Вроде разобрался как с соксами работать, но не хочет оно на сайт заходить, заходит только на ип сервера =\
Код:
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; 05.01.2010 в 19:19..
|
|
|

05.01.2010, 20:23
|
|
Познающий
Регистрация: 11.09.2008
Сообщений: 99
Провел на форуме: 2753780
Репутация:
585
|
|
1NtR0
Что значит " заходит только на ип сервера" ?
А что за херню вы посылаете заместо http-запроса?
BluR
А причем тут Perl?
Fepsis
Последнюю строку можно просто выводить без переноса строки:
Код:
perl -e"$|++; print qq($_\r) and sleep 1 for 1..20"
Последний раз редактировалось cr0w; 05.01.2010 в 20:49..
|
|
|

05.01.2010, 21:30
|
|
Участник форума
Регистрация: 14.04.2007
Сообщений: 197
Провел на форуме: 1122391
Репутация:
209
|
|
Сообщение от cr0w
1NtR0
Что значит " заходит только на ип сервера" ?
А что за херню вы посылаете заместо http-запроса?
Заходит например не на ww.2ip.ru а на 188.40.74.9 (это ип адрес сервера, на котором находиться 2ip.ru)
ВОт и я незнаю что за херня, знал бы не спрашивал.. Как правильно сделать ?
|
|
|

05.01.2010, 22:06
|
|
Познающий
Регистрация: 11.09.2008
Сообщений: 99
Провел на форуме: 2753780
Репутация:
585
|
|
1NtR0
Код:
print $f "GET http://2ip.ru/ HTTP/1.1\n"
. "Host: 2ip.ru\n\n";
С HTTP-протоколом начинай знакомиться. (;
|
|
|

05.01.2010, 22:43
|
|
Участник форума
Регистрация: 14.04.2007
Сообщений: 197
Провел на форуме: 1122391
Репутация:
209
|
|
Сообщение от cr0w
1NtR0
Код:
print $f "GET http://2ip.ru/ HTTP/1.1\n"
. "Host: 2ip.ru\n\n";
С HTTP-протоколом начинай знакомиться. (;
Твой код ничего не выводит
|
|
|

06.01.2010, 00:07
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме: 3660186
Репутация:
905
|
|
1NtR0, вооружайтесь RFC и снифером и смотрите, какие пакеты отсылаются и принимаются. Для примера работы с соксами на перле можете посмотреть Toolza от Pashkela. Там все на сокетах реализовано
|
|
|

06.01.2010, 01:55
|
|
Познающий
Регистрация: 06.08.2009
Сообщений: 56
Провел на форуме: 425261
Репутация:
29
|
|
Сообщение от cr0w
BluR
А причем тут Perl?
При том что это в ответ получай perl скрипт ... хотелось бы знать не может ли быть в нём проблемы ??? может я что то недоотправляю ... как я понимаю ошибка в том что мак адрес не соответствует тому для которого сгенерированна переменная , которая в свою очередь выдергивается из страницы которую скрипт получает до этого ... да и если бы переменная была бы не верной выдавалась бы другая ошибка ...
P.s : с perl знаком от силы неделю .... поэтому и спрашиваю ...
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|