Init Repo

This commit is contained in:
ada
2025-09-10 16:35:21 +03:00
commit 7b28824943
5 changed files with 173 additions and 0 deletions
+3
View File
@@ -0,0 +1,3 @@
BOT_TOKEN = "your_tg_bot_token"
PC_MAC = "your_mac"
ALLOWED_USER_IDS=
+21
View File
@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2025 Dmitry
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+119
View File
@@ -0,0 +1,119 @@
# 🔌 Wake-on-LAN Telegram Bot
Простой и удобный Telegram-бот для удалённого включения компьютера с помощью технологии Wake-on-LAN.
## 📋 Функции
- Включение компьютера удалённо через команду `/wake`
- Проверка доступа по ID пользователя
- Безопасное хранение конфигурации в переменных окружения
## 🚀 Быстрый старт
### Требования
- Python 3.7+
- Компьютер с поддержкой Wake-on-LAN
- Telegram Bot Token
### Установка
1. **Клонируйте репозиторий:**
```bash
git clone <repository-url>
cd remote-control
```
2. **Установите зависимости:**
```bash
pip install -r requirements.txt
```
3. **Создайте файл `.env`:**
```env
BOT_TOKEN=your_telegram_bot_token_here
PC_MAC=XX:XX:XX:XX:XX:XX
ALLOWED_USER_IDS=123456789,987654321
```
4. **Запустите бота:**
```bash
python main.py
```
## ⚙️ Настройка
### Переменные окружения
| Переменная | Описание | Пример |
|------------|----------|--------|
| `BOT_TOKEN` | Токен Telegram-бота | `1234567890:ABCdefGHIjklMNOpqrsTUVwxyz` |
| `PC_MAC` | MAC-адрес целевого компьютера | `AA:BB:CC:DD:EE:FF` |
| `ALLOWED_USER_IDS` | ID пользователей через запятую | `123456789,987654321` |
### Настройка Wake-on-LAN
1. **В BIOS/UEFI:** Включите Wake-on-LAN (может называться "Wake on Magic Packet")
2. **В Windows:**
- Откройте Диспетчер устройств
- Найдите сетевой адаптер → Свойства → Управление питанием
- Включите "Разрешить этому устройству выводить компьютер из ждущего режима"
### Получение MAC-адреса
**Windows:**
```cmd
ipconfig /all
```
**Linux/macOS:**
```bash
ifconfig
```
### Создание Telegram-бота
1. Найдите @BotFather в Telegram
2. Отправьте `/newbot`
3. Следуйте инструкциям
4. Скопируйте полученный токен
### Получение Telegram User ID
1. Найдите @userinfobot в Telegram
2. Отправьте `/start`
3. Скопируйте ваш User ID
## 🛡️ Безопасность
- Токен бота и другие чувствительные данные хранятся в переменных окружения
- Доступ к команде ограничен списком разрешённых пользователей
- Не добавляйте файл `.env` в систему контроля версий
## 📝 Использование
После запуска бота отправьте команду `/wake` в чат с ботом. Если ваш ID в списке разрешённых пользователей, бот отправит Magic Packet для включения компьютера.
## 🔧 Требования к сети
- Компьютер и устройство с ботом должны находиться в одной локальной сети
- Роутер должен поддерживать передачу Magic Packet
- Может потребоваться настройка портов в роутере для удалённого доступа
## 📦 Зависимости
- `python-telegram-bot` - для работы с Telegram API
- `wakeonlan` - для отправки Magic Packet
- `python-dotenv` - для загрузки переменных окружения
## 🤝 Поддержка
Если у вас возникли проблемы:
1. Убедитесь, что Wake-on-LAN включен в BIOS
2. Проверьте правильность MAC-адреса
3. Убедитесь, что устройства в одной сети
4. Проверьте настройки сетевого адаптера
## 📄 Лицензия
MIT License
+27
View File
@@ -0,0 +1,27 @@
from telegram import Update
from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes
from wakeonlan import send_magic_packet
from dotenv import load_dotenv
import os
load_dotenv()
BOT_TOKEN = os.environ.get("BOT_TOKEN", "")
PC_MAC = os.environ.get("PC_MAC", "")
ALLOWED_USER_IDS = os.environ.get("ALLOWED_USER_IDS", "").split(",")
async def wake(update: Update, context: ContextTypes.DEFAULT_TYPE):
user_id = str(update.effective_user.id)
if user_id not in ALLOWED_USER_IDS:
await update.message.reply_text("⛔ У вас нет доступа к этой команде.")
return
send_magic_packet(PC_MAC)
await update.message.reply_text("🔌 Magic Packet sent! ПК должен включиться.")
app = ApplicationBuilder().token(BOT_TOKEN).build()
app.add_handler(CommandHandler("wake", wake))
print("🚀 Бот запущен...")
app.run_polling()
+3
View File
@@ -0,0 +1,3 @@
wakeonlan
python-dotenv
python-telegram-bot