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

16.04.2009, 15:21
|
|
Участник форума
Регистрация: 08.02.2009
Сообщений: 196
Провел на форуме: 1420275
Репутация:
127
|
|
Сообщение от j0ker13
и еще пара вопросов)
если в строке ищешь нужное с помощью регулярки где находится несколько правильных результатов как их выводить все?)
Например при парсинге ип:
Код:
my $data = "127.0.0.1:8080";
my $pars = $data =~ /(.*)\:(.*)/;
if($pars){
print $1.":".$2."\n";
}
Думаю здесь понятно
а в перле какой способ быстрее чтоб запрашивать удаленную страничку?)
Если просто получить страничку (типа как в пхп file_get_contents):
Код:
use LWP::UserAgent;
$ua = new LWP::UserAgent;
my $answ = $ua->get("http://ya.ru")->as_string;
print $answ;
|
|
|

16.04.2009, 21:46
|
|
Постоянный
Регистрация: 11.03.2008
Сообщений: 347
Провел на форуме: 2075230
Репутация:
462
|
|
Зачем ещё заголовками голову морочать
Достаточно и
если в строке ищешь нужное с помощью регулярки где находится несколько правильных результатов как их выводить все?)
так лучше:
Код:
@cont = $get->content =~ //g;
print join "\n", @cont;
|
|
|

17.04.2009, 00:41
|
|
Познающий
Регистрация: 14.01.2009
Сообщений: 93
Провел на форуме: 244235
Репутация:
39
|
|
Сообщение от j0ker13
и еще) например в пхп быстрее работать с помощью курла чем с сокетами. а в перле какой способ быстрее чтоб запрашивать удаленную страничку?)
Код:
use LWP::Simple qw[get];
my $page = get('http://google.com');
|
|
|

17.04.2009, 17:26
|
|
Участник форума
Регистрация: 28.07.2008
Сообщений: 199
Провел на форуме: 861008
Репутация:
58
|
|
спс всем
воспользовался этим
@cont = $get->content =~ //g;
print join "\n", @cont;
накопились еще некоторые вопросы)
вывод в консоль происходит только после выполнения скрипта
можно ли заставить не буферизировать данные а сразу выводить?)
типа аналога flush в пхп)
|
|
|

17.04.2009, 17:55
|
|
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме: 18127311
Репутация:
1676
|
|
$|=1; в начале скрипта добавь
|
|
|

18.04.2009, 19:58
|
|
Познающий
Регистрация: 29.11.2004
Сообщений: 80
Провел на форуме: 479552
Репутация:
6
|
|
У меня такая проблема. Есть скрипт. Если он отрпавляет сообщение тому ID которого несушествует то произходит crash перла. Предпологаю что ето из-за того что скрипт неможет закончить свою задачу. Как с этим боротся?
|
|
|

18.04.2009, 20:18
|
|
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме: 18127311
Репутация:
1676
|
|
Код покажи, иначе непонятно из-за чего такое происходит
|
|
|

18.04.2009, 21:27
|
|
Познающий
Регистрация: 12.11.2007
Сообщений: 94
Провел на форуме: 4789789
Репутация:
71
|
|
Сообщение от KrafT
отрпавляет сообщение тому ID которого несушествует то произходит crash перла
А если проверку сделать ? если есть то отправил если нет то берет другой id... лучше конечно чтобы код выложил.
|
|
|

18.04.2009, 23:32
|
|
Познающий
Регистрация: 29.11.2004
Сообщений: 80
Провел на форуме: 479552
Репутация:
6
|
|
Код:
use warnings;
use LWP::UserAgent;
use HTTP::Cookies;
use threads;
use threads::shared;
my $threads = 1;
my $username = '';
my $password = '';
my $msg = '...';
open BASE, '<base.txt' || die "$!\n";
chomp (my @base : shared = <BASE>);
close BASE;
my $ua = LWP::UserAgent->new;
my $cookies = HTTP::Cookies->new;
$ua->cookie_jar($cookies);
$ua->post('http://toodoo.ru/account/login',
{
email => $username,
password => $password})->as_string;
for(0..$threads) {$trl[$_] = threads->create(\&send, $_);}
for(@trl) { $_->join; }
sub send {
while (1) {
my $id = shift @base;
return if (!$id);
$ua->post('http://toodoo.ru/inbox/compose',
{
user_id => $id,
message_text => $msg})->as_string;
print "$id\n";
sleep (1);
}
}
|
|
|

26.04.2009, 16:19
|
|
Участник форума
Регистрация: 28.07.2008
Сообщений: 199
Провел на форуме: 861008
Репутация:
58
|
|
как правильно разделить работу скрипта на потоки если его работа связана с увеличением одного числа
пример:
PHP код:
$thr=5;
for ($t=1;$t<4000;$t=$t+5){
for(0..$thr) {
$trl[$_] = threads->create(\&func);
}
for(0..$thr) {
$trl[$_]->join;
}}
func{
$t++;
....
}
в func работа с этим числом(а точнее дамп таблы через лимит mysql)
или так?
PHP код:
@arr=(1..4000);
while(@arr){
for(0..$thr) {
$trl[$_] = threads->create(\&func);
}
for(0..$thr) {
$trl[$_]->join;
}}
}
func {
$t=shift(@arr);
...
}
оба способа работают но жутко тормозят. первый сжирает много памяти... или как оптимизировать хоть один? или есть более красивее варианты?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|