И вот, через 2 года, я вспомнил это.. Это ужасно. Я больше никогда не буду писать такое унылое говно. Для вашей же пользы - не читайте эту "статью". Это унылийшее говно из всего, что я видел. Это почти как вебкилл.
Способы накрутки на PHP
Intro
Предполагается, что читатель умеет программировать на PHP. И составлять HTTP заголовки. (читать тут и тут )
Сейчас почти у каждого пользователя сети есть свой сайт. Естественно все хотят получить как можно больше посетителей. Этого добиваются регистрацией в различных рейтингах, поисковых системах и тд. Самую большую посещаемость имхо дают рейтинги. Но для поднятия хотя бы до тор100 нужно кликнуть по ссылке, показать баннер или и то и другое. По задумке кликать должны посетители сайта. А если их еще нет? Не сидеть же самому и кликать. Да и не всегда прокатит. Поэтому многие использую специальные кликеры или накрутчики. Но они как известно не универсальны….. В этой статье рассказано как сделать накрутчик практически под любую систему. А писать будем на PHP.
Begin
Естественно рейтинги защищаются от накрутки.
Вот способы, обход которых мы рассмотрим:
1. Запоминание по IP (самый распространённый)
2. Запоминание по браузеру \ системе пользователя
3. Запись cookie(далее просто печенье).
Обход 1 способа.
Обойти достаточно просто – использовать прокси.
Вместо обычного конекта
PHP код:
$socket = fsockopen(’АДРЕС_САЙТА’,80);
Используем
PHP код:
$socket = fsockopen(’ПРОКСИ’,ПОРТ_ПРОКСИ);
Также иногда можно обойтись без использования прокси. Нужно послать HTTP заголовок
Код:
headers .= "X_forwarded_for: ПОДДЕЛЬНЫЙ IP\r\n";
Но помогает это не всегда.
Обход 2 способа.
Эту защиту обойти проще всего. Нужно найти \ собрать базу(как можно больше) обозначений браузеров(ту инфу о них которую они отправляют на сервер в заголовке USER_AGENT).
Создать массив браузеров:
PHP код:
$browsers = array (
"Nokia6103/2.0 (04.61) Profile/MIDP-2.0 Configuration/CLDC-1.1",
"SonyEricssonK750i/R1CA Browser/SEMC-Browser/4.2 Profile/MIDP-2.0 Configuration/CLDC-1.1");
И в каждом запросе посылать соответствующий заголовок
PHP код:
$headers .= "User-Agent: “. $browsers[rand(0,count($browsers)-1)].”\r\n";
Если это WAP каталог то надо собрать базу мобильных браузеров.
Например в одном каталоге можно было крутить только с IP опсоса. Прокси не катили. Зато покатила подстановка юзерагента. И юзанье скрипта под Денвером через gprs.
Обход 3 способа.
Это имхо самый геморройный.
Сначала нужно получать печенье а потом подставлять его значение.
Вот так можно получить все печеньки
PHP код:
if (count($_COOKIE)!=0){
$ctru=true;
$kea=array_keys($_COOKIE);
$vala=array_values($_COOKIE);
$cook="";
for($iii=0;$iii<count($_COOKIE);$iii++){
if (count($_COOKIE)-$iii==1)
$cook.= $kea[$iii]."=".$vala[$iii]; else
$cook.= $kea[$iii]."=".$vala[$iii]."; ";
};
};
В итоге в переменной $cook будут лежать готовые для передачи печенья.
Передаём таким заголовком
Код:
headers .= “Cookie: “.$cook.”\r\n”;
О тонкостях
Описанные способы можно легко применить при накрутке показов баннера.
А вот с кликами будут проблемы. Так как зачастую при клике ты попадаешь на одну страницу. С нее перекидывает на вторую и только потом на конечный сайт.
При накрутке конечный сайт нас не интересует.
Нам надо получить ссылку с первой страницы и перейти на вторую. Ссылка находится либо в заголовках. Либо прямо на странице(инфрейм, яваскрипт, etc).
Способ получить её из заголовков:
PHP код:
//читаем заголовки
$hea='';
$he='';
while($hea!="\r\n" && !feof($socket)) {
$hea=fgets($socket,128);
$he.=$hea;};
// получаем ссылку (подходит и для случая со ссылкой на страницу)
$head=strstr($he, '2.php');
$link1=strstr($test1, $posle);
$link2=ereg_replace$link1,'',$head);
В переменной $socket должен быть открыт сокет
'2.php' это самое начало каждой ссылки (у всех разное)
$posle текст идущий сразу за ссылкой
В переменной $link2 нахожится ссылка. Теперь осталось только создать запрос с этой ссылкой(все параметры(ip, браузер…) оставить с первого запроса).
Теперь рассмотрим способ получить ёё из текста документа.
Заносим текст документа в переменную:
PHP код:
while(fgets($socket,2048)!="\r\n" && !feof($socket));
$buf='';
// читаем документ в переменную
while(!feof($socket)) $buf.=fread($socket,2048);
В переменной $buf лежит документ.
Уже знакомым способом получаем ссылку:
PHP код:
$head=strstr($buf, '2.php');
$link1=strstr($test1, $posle);
$link2=ereg_replace$link1,'',$head);
И переходим по ней(все параметры(ip, браузер…) оставить с первого запроса).
И последнее. Не забывать ставить в цикле накрутки паузы.
End
Теперь у вас достаточно знаний, что бы накрутить практически любую систему.
Готовый скрипт накрутки waplog.net
здесь
Enjoy