from dotenv import load_dotenv import os import socket import time import telebot load_dotenv() TOKEN = os.getenv('TG_TOKEN') CHAT_ID = os.getenv('TG_CHAT_ID') DOMAIN = os.getenv('DOMAIN') PORT = int(os.getenv('PORT', 80)) FMESSAGE = os.getenv('TG_FMESSAGE') REQUEST_TIMEOUT = int(os.getenv('TIMEOUT', 60)) # Время таймаута опроса в секундах last_status = True # Последнее состояние bot = telebot.TeleBot(TOKEN) def check_server(domain, port): try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # Создадим сокет sock.settimeout(10) # Время ожидания подключения result = sock.connect_ex((domain, port)) # 0 - успех sock.close() # Закрываем соединение return result == 0 except: return False while True: # Если статус изменился if last_status != check_server(DOMAIN, PORT): last_status = not last_status # Меняем последний статус на обратный if not last_status: # Если недоступен, то шлем сообщение bot.send_message(chat_id=CHAT_ID, text=FMESSAGE.format(DOMAIN, PORT)) time.sleep(REQUEST_TIMEOUT) # Засыпаем