Быстрая рефспамилка

Статус
В этой теме нельзя размещать новые ответы.

phillip

Полезный
Регистрация
4 Сен 2007
Сообщения
411
Реакции
15
Тут

есть рефспамилка на перле, и на пхп. Я немного пообточил ее под себя. Тестю. У меня получилось 20к урлов проспамилось за ночь. Пхп скриптом.
Для примера хрумер спамит 100-150к урлов за час.
Возможно ли на пхп, или на перле, или хз на чем сделать рефспамилку с такой скоростью?

стоит еще сказать, вдруг кто не в курсе, принцип простой. Даем миллион урлов, на каждый урл надо симитировать заход юзера. В этом и заключается рефспам.
 
30-40 запросов в секунду. конечно же реально, но только через мультипоточность. Запускать 10-50 скриптов или через multi_curl. Тут возникает проблема очередей, но это решаемо.

20к за ночь - это очень мало. некоторые сайты очень долго могут отдавать ответ, а ваш скрипт в это время тихо курит в сторонке.

А в чём собственно вопрос?
 
Да не парься с мультикурлом, подели базу на равные части да запусти просто 40-50 копий скрипта (для перла это вообще влегкую, php чуть побольше ресурсов жрет, но тоже вполне потянет) - и пусть они каждый в single-mode себе и работают. Вот на сколько памяти хватит - столько и запусти.

С мультикурлом навозишься - мама не горюй. Полностью спамилку переписывать придется. И не факт еще, что будет быстрее - каждая пачка mutlicurl занимает времени как самый долгий запрос из этой пачки, а тут у тебя очереди полностью независимые, так что если с каким-то серваком затык - остальные продолжают молотить.

И еще, в этом методе спама самая большая нагрузка - на DNS, а вовсе не на канал. Заюзай быстрый DNS - и скорость пробива значительно увеличится.
 
Тут
*** скрытое содержание ***
есть рефспамилка на перле, и на пхп. Я немного пообточил ее под себя. Тестю. У меня получилось 20к урлов проспамилось за ночь. Пхп скриптом.

1. Пробовал ли ты десктопную версию Ref-o-Rama ?
2. Поделить плиз для php скрипта своим файликом refbase.txt
3. php-скрипт через cron работает ?
 
1 пробовал, что-то отказалась работать у меня
2 взял базу выложенную там же для перловой версии скрипта
3 не, не по крону, яваскриптом запускается как только 20 урлов проспамлено
 
А как на виндовой машине запустить одновременно кучу копий перлового скрипта :nezn:
Там в статье пишут что заходим в cmd и пишем
perl ref.pl domains.csv Для просмотра ссылки Войди или Зарегистрируйся
Делаю я так кстати- дак он вообще медленно! Медленнее даже чем мой скрипт на пхп! :D А свой скрипт запускаю- и начинается медленное притормаживание всей системы. потом больше, больше и в итоге через 15мин даже перемещение курсора по экрану тормозит. Тоже не могу понять отчего это так. Кстати может дело в фаерволе?
 
А как на виндовой машине запустить одновременно кучу копий перлового скрипта :nezn:
Там в статье пишут что заходим в cmd и пишем
Делаю я так кстати- дак он вообще медленно! Медленнее даже чем мой скрипт на пхп! :D А свой скрипт запускаю- и начинается медленное притормаживание всей системы. потом больше, больше и в итоге через 15мин даже перемещение курсора по экрану тормозит. Тоже не могу понять отчего это так. Кстати может дело в фаерволе?
Это при скольких копиях скрипта у вас такие жёсткие тормоза? Могу посоветовать не запускать скрипт в окружении веб-сервера (если вы вдруг его так запускаете), т.к. он хавает очень много памяти. Обычный консольный интерпретатор PHP и минимум кода - залог к производительности.

Если используется БД или мемори кеш и надо распраллелить из таблицы строки, советую использовать след. подход:
Код:
$nomerTekushegoPotoka = от 0 до $kolvoPotokov - 1

SELECT * FROM table WHERE crc32( id ) % $kolvoPotokov = $nomerTekushegoPotoka AND `checked` = 'N'
только надо сразу определиться сколько потоков вы хотите :)

Но тут лучше использовать очередь в каком-нить мемори-кешере (apc, redis, memcache)

Если часто спамите по одной базе, то и кеш IP для хостов (ДНС) пригодился бы ;)

Пхп конечно не сравним с СИ, но он может работать быстро!
 
Пхп конечно не сравним с СИ, но он может работать быстро!

Вполне кстати сравним, особенно для данной задачи. Затыки-то все равно все в стеке tcp/ip, а оставшиеся 0.005% времени выполнения скрипта - ну и что, что на СИ они будут в сотни раз быстрее выполняться? Да и не будут в сотни :)

Насчет очереди - вот вариант для переменного количества потоков:

PHP:
$query = "SELECT id,url FROM queue WHERE status='free' LIMIT 1 FOR UPDATE";
list($id, $url) = mysql_fetch_array(mysql_query($query));
if ($id) {
  $query = "UPDATE queue SET status='taken' WHERE id='$id'";
  mysql_query($query);

// spam to $url

  if ($result) $query = "UPDATE queue SET status='done' WHERE id='$id'";
  else $query = "UPDATE queue SET status='error' WHERE id='$id'";
  mysql_query($query);
}

Заводим общую очередь, из которой каждый скрипт берет по 1-й свободной записи и тут же помечает ее как занятую. FOR UPDATE гарантирует, что другой скрипт параллельно не вытянет эту же запись из таблицы. status типа ENUM('free','taken','done','error'). Ну или просто TINYINT.

Скрипов можно динамически добавлять-удалять, плюс в очередь можно добавлять "по ходу" новые записи. Все проверено в боевых условиях, только у меня оно еще параллелится на несколько IP-адресов (одна общая очередь).
 
FOR UPDATE гарантирует, что другой скрипт параллельно не вытянет эту же запись из таблицы.
И вы забыли добавить, что всё это хозяйство работает только если тип таблицы InnoDb т.к. используются транзакции, найдутся ведь умельцы и на MyIsam такое сделают, а работать не будет.

На досуге тоже попробую проспамить, посмотрим чем лучше пойдёт, хрумаком или через свою очередь :) Отпишу о результатах.
 
На досуге тоже попробую проспамить, посмотрим чем лучше пойдёт, хрумаком или через свою очередь :) Отпишу о результатах.

Конечно хрумаком, тут и думать нечего. )

У хрумака неблокирующие сокеты, php со своим курлом нервно отдыхает.

Но повторюсь, самое главное в рефспаме - это быстрый DNS. И как ты правильно заметил, кешировать бы его очень было бы здорово, благо памяти на это все потребуется мегов двадцать, при миллионной базе. Можно целиком в памяти держать и бинарным поиском находить.

А открыть сокет и послать HEAD - много ресурсов не надо. Т.е. в теории рефспам может валить значительно мощнее, чем хрум с его полноценными сабмитами. Жалко вот толку от него очень мало..
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху