Епрст! Оказывается, статистику сайтов все еще накручивают. Значит, Нужно это кому-то. Сидят вот такие неленивые люди и потихоньку, помаленьку, неспешно так ковыряются. И глянь - на счетчике уж и за сотню тыщ, и популярность, типа, есть. Н-да...
Ну, понятно там, порно. Еще куда не шло перед рекламодателем отчитаться. Ну а остальные? Ну да бог с ними - это их духовные проблемы. А вот раз есть спрос - то нужно и предложение. Вернее приложение 🙂 Сейчас мы его и сбацаем. На Delphi, разумеется.
Что нам нужно? Ну, во-первых, мы сложных путей искать не будем, а просто воспользуемся компонентом WebBrowser. Ну и таймером.
Итак, лепим форму. На форму бросаем этот самый WebBrowser, кидаем туда таймер, кнопочку и пару edit-ов. Один, дабы ввести туда url, второй для таймера - укажем ему, через какие промежутки времени стучаться до сайта, который нам нужно "накрутить". Пока все.
Нужно значит, нам передать url из строки нашему маленькому веб-броузеру WebBrowser. Нет ничего проще:
WebBrowserMain.Navigate(EditURL.Text);
где EditURL - имя edit-а, в котором мы задаем url.
Теперича еще нужно, как к этому делу поднапрячь таймер. Тоже проще простого:
TimerCommand.Interval := StrToInt(EditInterval.Text) * 1000;
Где, как верно догадался, EditInterval - значение, через которое нужно идти на указанный url. Почему умножаем на 1000? Да все просто - таймер у нас в миллисекундах. Поэтому EditInterval мы будем задавать в секундах (так оно проще вроде как), а потом множить.
Ну, вот и все. И теперь стартуем:
TimerCommand.Enabled := True;
Вот и все. Таймер щелкает, и через заданное время идет себе по указанному адресу, в WebBrowser появляется страничка. Счетчик на странице крутиться. Расслабон.
Ну нет, милый друг, так не пойдет! - скажет знатный накрутчик. Ты же все время с одного и того же IP идешь. Какая же это накрутка? Так, детский лепет. И он будет, безусловно, прав.
Вот, возьми с полки пирожок. Вернее функцию, которая меняет прокси для WebBrowser:
Это UrlMkSetSessionOption. Поступаем с ней примерно так:
....
uses ... urlmon, wininet ...
....
var PIInfo : PInternetProxyInfo;
...
New (PIInfo) ;
PIInfo^.dwAccessType := INTERNET_OPEN_TYPE_PROXY ;
PIInfo^.lpszProxy := PChar('some.proxy:someport'); // ага, здесь пишем прокси.
PIInfo^.lpszProxyBypass := PChar(''); // а тут адреса, доступ к которым возможен, минуя прокси
UrlMkSetSessionOption(INTERNET_OPTION_PROXY, piinfo, SizeOf(Internet_Proxy_Info), 0);
....
Dispose (PIInfo) ;
....
Все понятно? Тебе осталось совсем малость - список прокси, и алгоритм для их смены при работе таймера.
И еще, для тех, кто в танке - настройки прокси будут меняться только для текущей сессии (то есть для нашего WebBrowser), что нам только на руку.
Сам можешь подумать над тем, как сделать
из программы злобный троян, который бы:
- Брал список прокси из Инета
- Работал бы незаметно для пользователя
(думаю, что тебе пригодятся наши статьи Как
самому написать BackDoor: Asm + Delphi). В таком
случае это вообще будет идеальная машина
для накрутки, прозрачная абсолютно для
любых счетчиков.
Успехов!