• Уважаемые посетители!

    Информируем вас о том, что в настоящий момент регистрация на форуме с использованием адресов электронной почты в домене @gmail.com (включая все корпоративные и персональные аккаунты Google) невозможна.

    Письма, отправленные с нашего сервера (подтверждение регистрации, ссылки для восстановления доступа), не доставляются на почтовые сервисы Google по техническим причинам, не зависящим от администрации форума.

    К сожалению, сроки устранения данной проблемы неизвестны.

    Для регистрации на форуме, пожалуйста, используйте адреса электронной почты других сервисов (Yandex, Mail.ru, Rambler и др.).
Иконка ресурса

Другое Easy Cheat Detector [ECDLogger] 1.1.2

Нет прав для скачивания
ECDLogger – автоматический монитор и логгер отчётов античит-системы ECD с игрового портала



- Что делает программа?
Программа периодически опрашивает AJAX-интерфейс раздела репортов (жалоб на читеров), парсит данные о каждом новом отчёте и сохраняет их в локальную базу данных SQLite. При обнаружении нового отчёта (которого ещё нет в БД) программа выводит в консоль подробную информацию:
  • ID отчёта
  • Ник игрока
  • Статус проверки (чист / подозрительный / читер)
  • Время создания отчёта
  • Название сервера
  • IP-адрес пользователя
  • Прямую ссылку на отчёт

Все данные дублируются в лог-файл ecd_logger.log и сохраняются в БД database/reports

- Для чего подходит?
  • Администраторам игровых серверов – для автоматического отслеживания новых жалоб на читеров без необходимости вручную заходить на сайт
  • Для анализа активности нарушителей – можно накопить статистику по читерам за длительное время
  • Для мониторинга нескольких серверов – программа умеет фильтровать отчёты по имени целевого сервера, принимать все отчёты или только отчёты с целевого + скрытых серверов

- Как использовать?
  1. Установить зависимости
    Программа написана на Python 3.x.
    Установка библеотек:
    pip install requests bs4

    Примечание:
    SQLite3, random, logging, json, time, os, sys, datetime входят в стандартную библиотеку Python

  2. Настроить конфигурацию – отредактировать файл config.py:
    - mode – режим сканирования (1 – только целевой сервер, 2 – все сервера, 3 – целевой + скрытые)
    - target_server – точное имя сервера (с учётом регистра и доп. символов), которое используется для фильтрации
    - min_interval / max_interval – интервал между проверками в секундах (случайное значение из диапазона, рекомендуемые значения 120/300 из-за вредности FG к запросам, иначе сервер будет в блоке на 30-60мин)
    - max_reports_per_scan – максимальное количество отчётов, обрабатываемых за одну проверку (0 – без лимита, не более 50)
    - request_delay – пауза между обработкой отдельных отчётов (чтобы не перегружать сервер)
    Остальные параметры (_DB_NAME, _FUA_USE, _FUA_RANDOM) лучше не менять без необходимости
  3. Запустить программу:
    Bash:
    python ECDLogger.py
    Работа будет продолжаться до принудительной остановки Ctrl+C

- Какие библиотеки нужны?
  • requestsдля HTTP-запросов
  • beautifulsoup4для парсинга HTML-фрагментов внутри JSON-ответа
  • Остальное (sqlite3, logging, random, time, json, os, sys, datetime)встроенные модули Python
Важно: в исходном коде есть from fake.ua import ua, но файл ua.py сам содержит список User-Agent’ов, это означает, что библиотека fake-useragent не требуется – используется встроенный список

- Что лучше не трогать?
  1. В файлах config.py и ECDLogger.py помечены зоны «НЕ ТРОГАТЬ». К ним относятся:
  2. Все глобальные переменные, начинающиеся с подчёркивания (_S_B_FG, _S_A_FG, _FUA, _VERIFY_SSL, _LOG_FILE, _SCAN_MODES и т.д.)
  3. Классы Database, ECDParser, ReportFormatter, Monitor – их внутренняя логика завязана на структуру ответа сервера
  4. Любые строки с комментариями # НЕ ТРОГАТЬ и участки кода ниже них

Редактировать разрешено только словарь SCAN_SETTINGS в config.py и, при необходимости, переменную _DB_NAME (путь к БД)

Внимание:
в случае если вы используете данную программу для улучшения своего Бота/Сайта (см. инструкцию по добавлению ниже) будьте аккуратны, актуальность программы может пропасть..

Изменение ua.py не рекомендуется, но допустимо – это просто список User-Agent строк

Дополнение: интеграция с вашим сайтом или Telegram-ботом​

Поскольку программа сохраняет все обнаруженные отчёты в локальную базу данных SQLite database/reports, вы можете легко интегрировать её с внешними системами двумя способами:

Значения в базе данных и их описание:​

report_id
Уникальный ID отчёта​
nick
Ник игрока​
result_status
Статус (success, warning, danger)​
report_time
Время создания отчета на сайте​
hostname
Имя сервера​
user_ip
IP-Адрес​
url
Прямая ссылка на отчёт​
created_at
Дата и время сохранения в БД​


Прямой доступ к базе данных (проще всего)
Интеграция с сайтом (PHP):
$db = new SQLite3('/path/to/database/reports');
$results = $db->query("SELECT * FROM reports ORDER BY created_at DESC LIMIT 10");
while ($row = $results->fetchArray()) {
    echo "Читер: {$row['nick']}, сервер: {$row['hostname']}<br>";
}
Интеграция с Telegram-ботом (Python):
import sqlite3
import requests

conn = sqlite3.connect('database/reports')
cursor = conn.cursor()
cursor.execute("SELECT nick, result_status, hostname, url FROM reports WHERE created_at > datetime('now', '-1 hour')")
new_reports = cursor.fetchall()

for nick, status, host, url in new_reports:
    text = f"🆕 Новый репорт!\n👤 {nick}\n📊 {status}\n🖥 {host}\n🔗 {url}"
    requests.post(f"https://api.telegram.org/bot<TOKEN>/sendMessage", json={"chat_id": "<CHAT_ID>", "text": text})

Модификация кода для отправки уведомлений в реальном времени​

В файле ECDLogger.py внутри метода _process_batch, после успешного сохранения нового отчёта self.db.save(rep) вы можете добавить свой код отправки.​

Отправка сообщение через Telegram бота (Python):
# Добавьте эту функцию в начало ECDLogger.py
def send_to_telegram(report):
    token = "YOUR_BOT_TOKEN"
    chat_id = "YOUR_CHAT_ID"
    text = (f"🚨 Новый репорт #{report['report_id']}\n"
            f"👤 {report['nick']}\n"
            f"⚠️ {report['result_status']}\n"
            f"🕐 {report['time']}\n"
            f"🌐 {report['hostname']}\n"
            f"🔗 {report['url']}")
    try:
        requests.post(f"https://api.telegram.org/bot{token}/sendMessage",
                      json={"chat_id": chat_id, "text": text}, timeout=5)
    except Exception as e:
        logger.error(f"Telegram: {e}")

# В методе _process_batch, после self.db.save(rep) добавьте:
send_to_telegram(rep) # после 200 строки (201)
Отправка на ваш сервер через Webhook (Python):
def send_webhook(report):
    import requests
    webhook_url = "https://example.com/api/ecd_hook.php" # ссылка на ваш WebHook
    payload = {
        "report_id": report['report_id'],
        "nick": report['nick'],
        "status": report['result_status'],
        "server": report['hostname'],
        "ip": report['user_ip'],
        "url": report['url']
    }
    requests.post(webhook_url, json=payload, timeout=5)

Важно:​

  • При интеграции не меняйте логику разбора отчётов и работы с БД – это нарушит функциональность
  • Все добавления кода делайте только после строки self.db.save(rep) и до time.sleep(SCAN_SETTINGS["request_delay"])
  • Снимок экрана от 2026-05-06 18-01-21.png
    Снимок экрана от 2026-05-06 18-01-21.png
    71,9 KB · Просмотры: 6
  • Снимок экрана от 2026-05-06 18-02-33.png
    Снимок экрана от 2026-05-06 18-02-33.png
    46 KB · Просмотры: 6
Автор
KrakenABT
Скачивания
1
Просмотры
104
Первый выпуск
Обновление
Оценка
0,00 звёзд 0 оценок

Поделиться ресурсом

Сверху Снизу