Пишем свой чекер аккаунтов на Python
⚠️ Дисклеймер
Статья написана с познавательной и ознакомительной целью, мы не призываем читателей к запрещенным законодательством действиям, а также не создаём пропаганду. Мы никого ни к чему не призываем! Вся информация представленная нами — это фантазия автора, выдумка, сон, вымысел. Данный материал не имеет ни какого отношения к реальности, все совпадения — случайность. Автор материала не несёт ответственности за ваши действия. Все персонажи и описываемые события являются вымышленными.
Итак, сегодня мы будем писать чекер аккаунтов. Чтобы не было никакой рекламы, писать чекер мы будем на свой сайт.
Внимание: этот гайд для новичков, если вы уже знаете как работать с requests, тут ничего полезного для вас не будет (наверное)
Что нам необходимо:
Для начала запускаем сервер, он нам даст адрес нашего сайта:
Переходим на сайт и видим форму входа
У нас есть 2 пользователя:
База аккаунтов у нас будет в файле logins.txt, создаём её (не обязательно переписывать всё, просто добавьте аккаунты по вкусу):
Далее нам надо эту базу прочитать, для этого откроем файл через open:
Теперь переходим в браузер, я буду показывать на примере Google Chrome. Открываем наш сайт и нажимаем Ctrl + Shift + I, и переходим в вкладку Network, и нажимаем на флажок Preserve log
Далее вводим верный логин и пароль и нажимаем Войти, у нас во вкладке Network появится новый запрос
Нажимаем на него и видим такую картину
Смотрим в Request Headers, нас интересует Content-Type. У нас это application/x-www-form-urlencoded. Он может быть и application/json. Мы будем делать всё на примере application/x-www-form-urlencoded. JSON рассмотрим уже во второй части. Теперь смотрим в Form Data и видим поля login и password. Теперь мы можем приступить к написанию кода. Т.к. у нас POST запрос, мы будем использовать requests.post и ссылку из Request URL:
Далее нам надо передать наш логин и пароль, для этого добавляем после URL, data=<>:
Теперь в <> пишем поля из Form Data:
Кидаем это всё в print и смотрим результат. Если вы всё сделали правильно, то будет такое:
Теперь мы можем добавить проверку на успешный вход и получение баланса:
Запускаем и видим, что наши аккаунты прочекались:
Теперь нам надо написать функцию проверки аккаунта, просто вносим весь код в неё:
Теперь нам нужна функция для самого потока, которая будет брать аккаунт и проверять его:
Добавляем переменную thread_count, в которой мы будем указывать количество потоков:
Итак, базу мы написали. Теперь можно писать запуск потоков:
Запускаем и смотрим как быстро отработал наш чекер
Рядом с print пишем саму запись в файл:
Наши валидные аккаунты записались в файл
Прокси должны начинаться с протокола, например https:// или socks5://. Можно добавить протокол в сам код или прямо в файл с листом прокси. Выбираем рандомный прокси:
Чтобы использовать прокси в запросах, надо их передать. Добавляем после data=<> запятую и пишем
random.choice выберет рандомный прокси из нашего списка. Его так-же надо импортировать:
Чтобы работать с socks надо установить pysocks:
Внимание: если вы работаете с локальным сервером, прокси не будут работать. Выглядеть код должен примерно так:
[Python] Пишем простой Чекер для Вконтакте
WlDone
Участник
WlDone
Участник
Здравствуйте, дорогие пользователи данного форума. Сегодня я бы хотел описать реализацию простого Чекера аккаунтов для социальной сети, как Вконтакте на таком скриптовом языке, как Python 3.x. Для кого будет полезна данная статья? Ну, на этот вопрос нет точного ответа, но я думаю, что она будет наиболее полезна новичкам в данном деле, чем «старичкам» / «старожилам», ибо они и без меня в этом прекрасно разбираются. Ну, что же. Давайте начнём с самого важного и простого, а именно подготовки необходимых инструментов, модулей, а также значений, что потребуются нам в будущем скрипте.
Во-первых, если в вашей системе отсутствует Python 3.x, то вам необходимо установить его c официального сайта разработчиков языка (
В-третьих, вам необходимо получить вашего зарегистрированного приложения. Как это сделать? Перейдите по
и зарегистрируйте standalone-приложение. Получилось? Хорошо, теперь перейдите в каталог с названием настройки, найдите строку id приложения и скопируйте его значение.
Уже всё сделали? Отлично, теперь мы можем открыть свою любимую IDE или текстовый редактор, которые довольно часто выступают в роли девушек у разработчиков, создать произвольный файл с раширением .py и импортировать необходимый модуль vk и функцию sleep из модуля time. Зачем нам нужна данная функция? Здесь всё просто. Социальная сеть Вконтакте накладывает ряд ограничений на использование своего API и одно из них звучит, примерно, так :
— Только 3 запроса в секунду.
import vk
from time import sleep
. def __init__ ( self ) :
. #some code
. def vk__init ( self ) :
. #some code
Код :
import vk
from time import sleep
. def __init__ ( self ) :
. self.vk__init ( )
Вот и подошла под конец моя небольшая статья по реализации Чекера аккаунтов Вконтакте. Спасибо за предоставленное внимание и удачи в совершенствовании своих навыков.
Статья Изучаем Python на практике. Пишем чекер SSH серверов.
Для тех, кто сразу хочет развернуть проект, скачиваем архив и в папке с архивом выполняем:
Полный текст программы можно посмотреть в конце поста под спойлером «Весь код».
Соответственно: логин, пароль, адрес SSH сервера, порт для подключения.
Нужно проверить каждый хост (строку файла) на возможность подключения.
Учетные данные и адрес сервера, принявшего соединение, записать в файл, назовем его goods.txt.
Для тестирования работы скрипта понадобятся SSH аккаунты. Есть сервисы на которых их можно получить легально и бесплатно.
Здесь каталог ссылок на такие сервисы. https://shells.red-pill.eu/, к сожалению много мертвых.
Автор воспользовался этим: IRCd Hosting / ZNC Hosting / Eggdrop Hosting / psyBNC Hosting / Many more + Deploy apps with one click / xShellz
Раз уж мы решили применить ООП, посмотрим какие сущности у нас есть в поставленной задаче:
1. файл со списком серверов, нуждающихся в проверке;
2. файл для записи списка серверов, ответивших на запрос при проверке;
3. сам сервер, который нужно проверить, в виде строки во входящем файле.
После написания кода заметил, что дублируются операции по работе с файлами и решил вывести все, что касается файловых операций в отдельный класс.
Таким образом получилось 4 класса:
Переходим к созданию классов.
Поскольку сначала нужно получить данные для проверки создадим класс class InputList.
Проанализируем какие атрибуты (поля класса) будут у объекта.
def __init__(self): это метод конструктор, он выполняется при создании объекта InputList.
self.host_count = 0 количество проверяемых ssh серверов
self.bad_host_count = 0 количество серверов, не ответивших на запрос
self.current_line_count = 0 номер текущей строки файла, из которого читается список
Все поля пустые, потому, что вновь созданный объект не загрузил пока никакие данные.
Создаем класс OutputList.
Конструктор очень простой, все, что мы будем хранить в объекте это количество проверенных хостов, они будут записаны в файл.
Создаем класс Host.
В полях этого класса будут хранится учетные данные и адрес сервера, а так же его геолокация, и время доступа при авторизации на сервере.
В конструктор передаются имена входящего файла и файла с результатом, а так же объекты списков.
Теперь приступим к созданию методов классов. А вот тут начинаются сложности с объяснением. Для более ясного понимания лучше смотреть весь файл с программой, куски с комментариями будут просто подсказками.
Продолжаем наполнять класс InputList. Для начала узнаем сколько хостов нужно будет проверить, подсчитав количество строк в файле.
Вот здесь и появился именованный аргумент флаг. Действие функции обернуты в try-except для предотвращения падения программы без выясненной причины. В нашем случае если файл по какой то причине не может быть прочитан, то продолжать выполнение программы бессмысленно, поэтому она завершится после сообщения об ошибке ввода-вывода. И вот мы пришли к тому, что было сказано ранее о необходимости чтения файла и дальнейшей его обработки построчно. Это достигается использованием оператора yield. Если кратко, yield останавливает выполнения цикла до следующего вызова итератора цикла. То есть если просто вызвать где то в коде метод read_data_from_file() он прочтет только 1-ую строку файла и приостановит свою работу. Для того, что бы он отработал по всем строкам файла, метод должен быть вызван внутри другого цикла, в нашем случае он является итерируемым объектом (for line in io.read_data_from_file) в методе hosts_counter. Команда line.strip().split(‘ ‘) убирает символ перехода на новую строку и разбивает строку на подстроки по разделителю пробел. Таким образом данные о хосте выглядят как строка строк [[login], [pass], [ip], [port]].
Мы вынужденно отвлеклись от создания методов класса InputList, снова возвращаемся к нему.
Переходим к созданию метода, фактически управляющего всей последующей программой. Метод находится в InputList по той причине, что далее идет обработка данных именно этого списка. Но такое решение вопрос спорный и возможно такой метод было бы лучше разместить в функции main?
Напишите ваше мнение о размещении этого метода в комментариях.
Работу парсера вынесем в отдельную функцию cmd_arg_parser().
Создаем объект парсера:
Вот и все, 164 строки кода.
Вложения
darklight
explorer
dark2strike
Active member
При этом в коде написано host = Host() непонятно, где там в скобках передаются два объекта.
Ну и вообще, не дочитал пока статью, но меня постоянно мучает мысль, что для данной задачи OOP это как из пушки по воробьям. Единственное для чего могло бы это пригодиться, что бы сделать красивый асинк. Но почему-то мне кажется, что в этой разработке никакого асинка не встретится.
explorer
darklight
explorer
darklight
explorer
planet17
Всякий раз когда приходит свободная минутка и вдохновение попробовать питон, натыкаюсь на большую проблему. Ничегошеньки не запускается, и не устанавливается((. И всегда решение возникших ошибок отнимает приличное время.
Господа, подскажите какая это версия, 2/3?
И что нужно установить чтобы хотя бы пройти процесс инсталяции. У меня убунту 18. Пробовал и через консоль и через Пичарм со второй вылетает на поиске версии astroid. Выбирал интерпретатор третьей вообще не мог сохранить настройки, вылетали сообщения о ошибки при попытке добавить.
При этом, например скрипты отсюда же Find Admin Page / Поиск Административных панелей запускаются без проблем.
explorer
planet17
Но с вашей подачи разобрался хотя бы способом через pycharm, последний не хотел работать без этих пакетов:
python3-distutils libcurl4-openssl-dev libssl-dev python3-dev
С установкой уже смог сконфигурировать вэнв, и установить зависимости.
explorer
python3 не нужно писать, другое дело что при наличии в системе python3 и python2 одна из версий встаёт по умолчанию, и соответственно скрипты запускаются для этой версии.
Можно настроить альтернативное переключений версий в линуксе так:
Raskolnikov
Это не надо запускать из-под питона, сначала надо установить pip
Python
Пишем свой чекер аккаунтов на Python
⚠️ Дисклеймер
Статья написана с познавательной и ознакомительной целью, мы не призываем читателей к запрещенным законодательством действиям, а также не создаём пропаганду. Мы никого ни к чему не призываем! Вся информация представленная нами — это фантазия автора, выдумка, сон, вымысел. Данный материал не имеет ни какого отношения к реальности, все совпадения — случайность. Автор материала не несёт ответственности за ваши действия. Все персонажи и описываемые события являются вымышленными.
Итак, сегодня мы будем писать чекер аккаунтов. Чтобы не было никакой рекламы, писать чекер мы будем на свой сайт.
Внимание: этот гайд для новичков, если вы уже знаете как работать с requests, тут ничего полезного для вас не будет (наверное)
Что нам необходимо:
Для начала запускаем сервер, он нам даст адрес нашего сайта:
Переходим на сайт и видим форму входа
У нас есть 2 пользователя:
База аккаунтов у нас будет в файле logins.txt, создаём её (не обязательно переписывать всё, просто добавьте аккаунты по вкусу):
Далее нам надо эту базу прочитать, для этого откроем файл через open:
Теперь переходим в браузер, я буду показывать на примере Google Chrome. Открываем наш сайт и нажимаем Ctrl + Shift + I, и переходим в вкладку Network, и нажимаем на флажок Preserve log
Далее вводим верный логин и пароль и нажимаем Войти, у нас во вкладке Network появится новый запрос
Нажимаем на него и видим такую картину
Смотрим в Request Headers, нас интересует Content-Type. У нас это application/x-www-form-urlencoded. Он может быть и application/json. Мы будем делать всё на примере application/x-www-form-urlencoded. JSON рассмотрим уже во второй части. Теперь смотрим в Form Data и видим поля login и password. Теперь мы можем приступить к написанию кода. Т.к. у нас POST запрос, мы будем использовать requests.post и ссылку из Request URL:
Далее нам надо передать наш логин и пароль, для этого добавляем после URL, data=<>:
Теперь в <> пишем поля из Form Data:
Кидаем это всё в print и смотрим результат. Если вы всё сделали правильно, то будет такое:
Теперь мы можем добавить проверку на успешный вход и получение баланса:
Запускаем и видим, что наши аккаунты прочекались:
Теперь нам надо написать функцию проверки аккаунта, просто вносим весь код в неё:
Теперь нам нужна функция для самого потока, которая будет брать аккаунт и проверять его:
Добавляем переменную thread_count, в которой мы будем указывать количество потоков:
Итак, базу мы написали. Теперь можно писать запуск потоков:
Запускаем и смотрим как быстро отработал наш чекер
Рядом с print пишем саму запись в файл:
Наши валидные аккаунты записались в файл
Прокси должны начинаться с протокола, например https:// или socks5://. Можно добавить протокол в сам код или прямо в файл с листом прокси. Выбираем рандомный прокси:
Чтобы использовать прокси в запросах, надо их передать. Добавляем после data=<> запятую и пишем
random.choice выберет рандомный прокси из нашего списка. Его так-же надо импортировать:
Чтобы работать с socks надо установить pysocks:
Внимание: если вы работаете с локальным сервером, прокси не будут работать. Выглядеть код должен примерно так: