mirror of
https://github.com/ada-dmitry/remote-control.git
synced 2026-09-24 01:10:38 +00:00
Init Repo
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
BOT_TOKEN = "your_tg_bot_token"
|
||||
PC_MAC = "your_mac"
|
||||
ALLOWED_USER_IDS=
|
||||
@@ -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.
|
||||
@@ -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
|
||||
@@ -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()
|
||||
@@ -0,0 +1,3 @@
|
||||
wakeonlan
|
||||
python-dotenv
|
||||
python-telegram-bot
|
||||
Reference in New Issue
Block a user