Задать вопрос
@Azovskiy

Проблема с авторизацией в скрипт. Как решить???

Вообщем в крации обьясню. Я пишу свой скрипт и задумался над авторизацией через мак адрес. Моя идея при входе проверять мак адрес если он занесен в базу то пользователя пускает в скрипт, а если нет то в телеграм бот отправляет мне запрос на одобрение.

Проблема:
Когда я нажимаю на кнопку разрешить ничего не происходит а по скрипту должен записыватся мак адрес в текстовый файл


Код:
import requests
import json
import os


AUTHORIZED_MACS_FILE = "authorized_macs.txt"
BOT_TOKEN = '-'
CHAT_ID = '-'

def mac_allowed(mac):
    if os.path.exists(AUTHORIZED_MACS_FILE):
        with open(AUTHORIZED_MACS_FILE, "r") as file:
            macs = file.read().splitlines()
        return mac in macs
    return False

def add_mac(mac):
    with open(AUTHORIZED_MACS_FILE, "a") as file:
        file.write(mac + "\n")

def notification(mac):
    message = f"MAC-адрес {mac} хочет авторизоваться в SMOKE TOOL."
    keyboard = {
        "inline_keyboard": [
            [{"text": "Разрешить", "callback_data": f"allow:{mac}"},
             {"text": "Отклонить", "callback_data": f"deny:{mac}"}]
        ]
    }
    url = f"https://api.telegram.org/bot{BOT_TOKEN}/sendMessage"
    data = {"chat_id": CHAT_ID, "text": message, "reply_markup": json.dumps(keyboard)}
    try:
        requests.post(url, json=data)
    except Exception as e:
        print(f"Ошибка при отправке уведомления в Telegram: {e}")

def handle_telegram_response(callback_data):
    action, mac = callback_data.split(":")
    if action == "allow":
        add_mac(mac)
        send_telegram_message(f"MAC-адрес {mac} был разрешен.")
    elif action == "deny":
        send_telegram_message(f"MAC-адрес {mac} был отклонен.")

def send_telegram_message(message):
    url = f"https://api.telegram.org/bot{BOT_TOKEN}/sendMessage"
    data = {"chat_id": CHAT_ID, "text": message}
    try:
        requests.post(url, json=data)
    except Exception as e:
        print(f"Ошибка при отправке сообщения: {e}")


def main():
    mac = input("Введите MAC-адрес: ")
    if mac_allowed(mac):
        print("Доступ разрешен.")
    else:
        notification(mac)
        print("Запрос на авторизацию отправлен.")

if __name__ == "__main__":
    main()
  • Вопрос задан
  • 40 просмотров
Подписаться 1 Средний 4 комментария
Пригласить эксперта
Ответы на вопрос 1
Попробуй
import requests
import json
import os

AUTHORIZED_MACS_FILE = "authorized_macs.txt"
BOT_TOKEN = 
CHAT_ID = 

def mac_allowed(mac):
    if os.path.exists(AUTHORIZED_MACS_FILE):
        with open(AUTHORIZED_MACS_FILE, "r") as file:
            macs = file.read().splitlines()
        return mac in macs
    return False

def add_mac(mac):
    with open(AUTHORIZED_MACS_FILE, "a") as file:
        file.write(mac + "\n")

def notification(mac):
    message = f"MAC-адрес {mac} хочет авторизоваться в SMOKE TOOL."
    keyboard = {
        "inline_keyboard": [
            [{"text": "Разрешить", "callback_data": f"allow:{mac}"},
             {"text": "Отклонить", "callback_data": f"deny:{mac}"}]
        ]
    }
    url = f"https://api.telegram.org/bot{BOT_TOKEN}/sendMessage"
    data = {"chat_id": CHAT_ID, "text": message, "reply_markup": json.dumps(keyboard)}
    try:
        response = requests.post(url, json=data)
        response.raise_for_status()  # Проверка на ошибки HTTP
    except Exception as e:
        print(f"Ошибка при отправке уведомления в Telegram: {e}")

def handle_telegram_response(callback_data):
    try:
        action, mac = callback_data.split(":")
        if action == "allow":
            add_mac(mac)
            send_telegram_message(f"MAC-адрес {mac} был разрешен.")
        elif action == "deny":
            send_telegram_message(f"MAC-адрес {mac} был отклонен.")
        else:
            send_telegram_message("Неизвестное действие.")
    except ValueError:
        print("Некорректные данные в callback_data.")
        send_telegram_message("Ошибка обработки данных.")

def send_telegram_message(message):
    url = f"https://api.telegram.org/bot{BOT_TOKEN}/sendMessage"
    data = {"chat_id": CHAT_ID, "text": message}
    try:
        response = requests.post(url, json=data)
        response.raise_for_status()
    except Exception as e:
        print(f"Ошибка при отправке сообщения: {e}")

def main():
    mac = input("Введите MAC-адрес: ").strip()
    if not mac:
        print("Ошибка: MAC-адрес не может быть пустым.")
        return
    if mac_allowed(mac):
        print("Доступ разрешен.")
    else:
        notification(mac)
        print("Запрос на авторизацию отправлен.")

if __name__ == "__main__":
    main()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы