Накрутка голосов

Итак, сегодня я вкратце расскажу о накрутке голосов в различных интернет-голосованиях.
Что это вообще такое и зачем нужно? Например, есть некий конкурс вроде «Проголосуй за лучшую фотку», за победу в котором дается некий приз. Или не дается =) Организаторами предполагается, что один человек может проголосовать один раз. Обычно один раз в день, а не просто один раз за голосование – для пущего драматизма. Для предотвращения накрутки обычно применяются два способа: запись куки и запись IP-адреса. Это наиболее распространенный способ, бывает и вариант с обязательной регистрацией и так далее.

Итак, требуется обойти два ограничения: куки и ip-адрес. C куками все понятно, их мы просто не будем запоминать =) С ip-адресами все немного сложнее – есть два очевидных способа обхода этого ограничения: прокси и тор. С тором более-менее понятно: подключаемся к сети, голосуем, меняем адрес и так до упора =) С прокси же основная проблема состоит в том, что нужно найти рабочие прокси. К примеру, найти их можно на сайте samair.ru, благо есть и мой готовый парсер, найти который можно здесь.

Использование списка прокси-серверов.

Собственно, как оно работает: открывается файлик с проксями, надерганных при помощи этого скрипта, построчно берется текущий прокси-сервер, эмулируется POST-запрос, каждый раз от «разного» браузера, чтобы не палиться =)

# -*- coding: cp1251 -*-

import urllib
import re
import random
import socket
import urllib2
import telnetlib
import time
socket.setdefaulttimeout(12)
i=0
agent=["Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.8) Gecko/20071008 Firefox/2.0.0.8",
        "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.7) Gecko/20061022 Iceweasel/1.5.0.7-g2",
        "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13",
        "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/0.4.154.25 Safari/525.19",
        "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.65 Safari/525.19",
        "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)",
        "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)",
        "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)",
        "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; YPC 3.0.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",
        "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)",
        "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)",
        "Mozilla/5.0 (compatible; Konqueror/3.5; Linux 2.6.21-rc1; x86_64; cs, en_US) KHTML/3.5.6 (like Gecko)",
        "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.17) Gecko/20080829 Firefox/2.0.0.17",
        "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.19) Gecko/20081201 Firefox/2.0.0.19",
        "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.20) Gecko/20081217 Firefox/2.0.0.20",
        "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3",
        "Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3",
        "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7",
        "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1",
        "Opera/9.02 (Windows NT 5.1; U; en)",
        "Opera/9.23 (Windows NT 5.1; U; ru)",
        "Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.2.15 Version/10.00"]

file_object = open('list_.txt', 'r')
try:
    for line in file_object:
        i=i+1
        try:
            cur_agent=agent[random.randint(0, len(agent))-1]
            res_str=''
            rez=[]
            post = urllib.urlencode({"vote":'1',"x":random.randint(10, 100),'y':random.randint(1, 10)})

            request = urllib2.Request("http://tula.kp.ru/daily/forumcontest/photo/58150 ",post)
            request.add_header('User-agent', cur_agent)
            request.add_header('Accept-Language', 'ru,en-us;q=0.7,en;q=0.3')
            request.add_header('Accept-Encoding', 'gzip')
            request.add_header('Accept-Charset', 'windows-1251,utf-8;q=0.7,*;q=0.7')
            request.add_header('Connection', 'keep-alive')
            request.add_header('Referer', 'http://tula.kp.ru/daily/forumcontest/photo/58150')
            request.add_header('Content-Type', 'application/x-www-form-urlencoded')
            request.set_proxy(line[:-1], 'http')

            page = urllib2.urlopen(request).read()

            print 'voted'

        except:
            print 'Dead!'

finally:
        file_object.close()

Использование TOR

Основное отличие от предыдущей версии в том, что адреса, через которые происходит голосование, не являются прокси, а узлами сети Tor. Соответственно, на компьютере, где будет запускаться данный скрипт, должен быть работающий клиент этой сети. В принципе, код понятен, поясню только момент с телнетом. Данная последовательность команд приводит к принудительной смене узла, что обеспечивает возможность повторного голосования.

# -*- coding: cp1251 -*-
# Tor voter
# http://yegorov-p.ru/
import urllib
import re
import random
import socket
import urllib2
import telnetlib
import time
socket.setdefaulttimeout(12)
i=0
agent=["Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.8) Gecko/20071008 Firefox/2.0.0.8",
        "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.7) Gecko/20061022 Iceweasel/1.5.0.7-g2",
        "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13",
        "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/0.4.154.25 Safari/525.19",
        "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.65 Safari/525.19",
        "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)",
        "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)",
        "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)",
        "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; YPC 3.0.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",
        "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)",
        "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)",
        "Mozilla/5.0 (compatible; Konqueror/3.5; Linux 2.6.21-rc1; x86_64; cs, en_US) KHTML/3.5.6 (like Gecko)",
        "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.17) Gecko/20080829 Firefox/2.0.0.17",
        "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.19) Gecko/20081201 Firefox/2.0.0.19",
        "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.20) Gecko/20081217 Firefox/2.0.0.20",
        "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3",
        "Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3",
        "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7",
        "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1",
        "Opera/9.02 (Windows NT 5.1; U; en)",
        "Opera/9.23 (Windows NT 5.1; U; ru)",
        "Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.2.15 Version/10.00"]
for i in range(1,250):
    try:
        cur_agent=agent[random.randint(0, len(agent))-1]
        res_str=''
        rez=[]
        post = urllib.urlencode({"vote":'1',"x":random.randint(10, 100),'y':random.randint(1, 10)})

        tn = telnetlib.Telnet('127.0.0.1', 9051)
        tn.read_until("Escape character is '^]'.", 2)
        tn.write("AUTHENTICATE\r\n")
        tn.read_until("250 OK", 2)
        tn.write("signal NEWNYM\r\n")
        tn.read_until("250 OK", 2)
        tn.write("quit\r\n")
        tn.close()
        time.sleep(5)

        #TOR
        request = urllib2.Request("http://tula.kp.ru/daily/forumcontest/photo/51927 ",post)
        request.add_header('User-agent', cur_agent)
        request.add_header('Accept-Language', 'ru,en-us;q=0.7,en;q=0.3')
        request.add_header('Accept-Encoding', 'gzip')
        request.add_header('Accept-Charset', 'windows-1251,utf-8;q=0.7,*;q=0.7')
        request.add_header('Connection', 'keep-alive')
        request.add_header('Referer', 'http://tula.kp.ru/daily/forumcontest/photo/51927')
        request.add_header('Content-Type', 'application/x-www-form-urlencoded')
        request.set_proxy('127.0.0.1:8118', 'http')
        page = urllib2.urlopen(request).read()

        rez=re.findall('
<div>(.+?)</div>

',page)

        res_str=res_str+' '+rez[0]
        rez=re.findall("Голосов: (.+?)",page)

        res_str=res_str+' '+rez[0]

        print str(i)+' '+res_str
    except:
        print 'Oops!'

23 comments so far

  1. 001 Dimson

    Если несложно, перезалей скрипт. Ссылка битая.

    December 12th, 2010
  2. 002 yegorov-p

    Перезалил. Скрипт там, конечно, кривоватый, ибо писался давным-давно, но работает =)

    December 12th, 2010
  3. 003 prostoYA

    с голосование можете помочь?))

    December 30th, 2010
  4. 004 yegorov-p

    Вряд ли =)
    Мне был интересен способ, а не результат.

    December 31st, 2010
  5. В принципе – способ рабочий. Но скрипт отбора проксей предложенный автором требует доработки – надо выбирать только анонимные прокси.

    February 6th, 2011
  6. А научите пожалуйста накручивать голоса в конкурсе!

    August 10th, 2011
  7. Уважаемый тов. Егоров!

    Срочно нужна кибер-поддержка на конкурсе “Мисс Университет Мира 2011″ в Южной Корее – http://wmu.or.kr/eng/contest/online.asp
    Сейчас Россия находится на 11-м месте, отставая от лидирующей Канады на 4500 голосов.

    Так что примените, ПОЖАЛУЙСТА, Ваши КИБЕРНЕТИЧЕСКИЕ НАВЫКИ, чтобы ВЫЙТИ здесь В ЛИДЕРЫ уже СЕЙЧАС, не дожидаясь 2020-го года !!!
    Вот фотографии российской конкурсантки: http://wmu.or.kr/eng/etc/profile.asp?gubun=771&contest_gubun=39
    Как видите, в плане внешних данных и сценичности (можете поверить!) мы уже ВПЕРЕДИ ПЛАНЕТЫ ВСЕЙ !

    Итак, Елизавета Ртищева (Гуманитарный факультет Тульского Государственного университета), участница “Мисс Россия 2011″ и победительница “Мисс Тула 2008″.

    Финал “Мисс Университет Мира 2011″ будет транслироваться впрямую 15-го декабря: http://wmu.or.kr/eng/index.asp

    ГОЛОСОВАТЬ за Россию ЗДЕСЬ – http://wmu.or.kr/eng/contest/online.asp

    December 10th, 2011
  8. 008 yegorov-p

    Защиты никакой, поднял с 11 на 6 место. Скучно и неспортивно. =)

    December 12th, 2011
  9. 009 Sofia

    Здравствуйте! Я прочитала о ваших методах и не поняла даже того, куда вставлять скрипт! А мне нужно выиграть в конкурсе, так как 2 дня я была впереди, а теперь меня догнали и перегнали с исп-ем программ накрутки голосов.
    Помогите мне пожалуйста! http://rea.ru/Main.aspx?page=_Miss_Studija_2012__Nojabr_
    что здесь нужно делать?

    December 14th, 2011
  10. 010 yegorov-p

    Очевидно же, найти кого-нибудь, кто поймет, куда и что вставлять :-)

    December 15th, 2011
  11. 011 ANNA

    Ничего не поняла)) я чайник!
    выиграть очень хочется подписку на любимый журнал! если есть время и хоть чуточку желания помогите))
    http://www.cosmo.ru/sp/platfon/all.php?NICKNAME=%E0%ED%F7%EE%F3%F1

    December 17th, 2011
  12. 012 Lokko

    Нужна накрутка, как сделать голову сломала… похоже я дуб О_о
    http://chocoboy.ru/gallery.php Имя Виттих Ольга, 2 фото, за любую, или подскажите как сделать.

    January 19th, 2012
  13. 013 yegorov-p

    Найти кого-нибудь, кто сделает это за вас =)

    January 20th, 2012
  14. 014 Lokko

    =)я не прошу конкретно делать за меня, прошу подсказать как сделать, с анонимайзерами работала, а как обойти регистрацию не знаю… читала что куки надо удалять и по новой… ничего подобного… рррррр…

    January 20th, 2012
  15. 015 Destiny

    позоже это не для девочек….уважаемый егоров…будьте джентельменом))помогите)я подозреваю что участники накручивают себе голоса нечестно,но мне совсем не хочется отставать)тем более это дело принципа)вот адрес http://megatyumen.ru/weddings/voting и проголосуйте за пару Алексей и Алена. посмотрите что можно сделать)огромнейшее спасибо)

    January 30th, 2012
  16. 016 Destiny

    похоже)))

    January 30th, 2012
  17. 017 yegorov-p

    Я полагаю, что джентельменом должен быть не я, а Алексей ;)

    January 31st, 2012
  18. 018 nata

    помогите!!!нужна помощь. можно ли как нибудь поднять рейтинг?
    ://barohota.ru/index.php?view=detail&id=5746&option=com_joomgallery&Itemid=159

    March 3rd, 2012
  19. 019 Olga

    Помогите выйграть в конкурсе!!!
    http://sinar.ru/contest/photos.php?page=1
    Ник Ольга Тюмень, черное пальто и розовый шарфик!Спасибо

    March 23rd, 2012
  20. 020 Pasha

    помогите девушке в конкурсе!!!! №2 , Анастасия! Конкурс прошел сам, а интернет-голосование началось! Очень нужно!http://www.podolsktime.ru/index.php?option=com_content&view=article&id=27402:-l-2012r&catid=50:2008-10-01-05-25-07&Itemid=35

    April 3rd, 2012
  21. 021 Лиза

    http://topmodel.loverepublic.ru/contest/373/
    Потратьте секундочку для хорошего человека)Никакой регистрации, а только один клик)

    April 10th, 2012
  22. 022 serj

    блять! вся россия такая! лишь бы где урвать да украсть! если ты уродина, тебе никакие скрипты накрутки не помогут!

    April 15th, 2012
  23. 023 eddie

    помогите накрутить по-братскиа то вкурить ничерта не могу=((

    April 19th, 2012

Add a comment