Исходник Telegram | Чекер Прокси

абоба777

Новичок
Автор темы
15
4
Написал простой чекер, поддерживает файлы.
Для работы -
pip install telebot

001:
import telebot
import requests
import os
from telebot.types import InlineKeyboardMarkup, InlineKeyboardButton

TOKEN = '123000'
bot = telebot.TeleBot(TOKEN)

def check_proxy(proxy):
    proxies = {"http": proxy, "https": proxy}
    try:
        response = requests.get("http://www.google.com", proxies=proxies, timeout=5)
        if response.status_code == 200:
            return True
    except:
        return False
    return False

@bot.message_handler(commands=['start'])
def start(message):
    markup = InlineKeyboardMarkup()
    button = InlineKeyboardButton("🕵️‍♂️ Администратор 🕵️‍♂️", url="сюда ссылку на свой тг")
    markup.add(button)
    
    bot.send_sticker(message.chat.id, "CAACAgIAAxkBAAEpOn1m2z_xoaaD31TnGw9lR7pHrgO0qgACzhEAApNDiUuJDs1kh0AuUjYE")
    bot.send_message(message.chat.id,
                     "👋 *Привет!* Я бот для проверки валидности прокси.\n\n📋 Отправь мне список прокси в текстовом виде или загрузи файл, и я проверю их.\n\n📝 Пример формата:\n- 123.456.789.000:8080\n- user:pass@123.456.789.000:8080",
                     parse_mode="Markdown", reply_markup=markup)

@bot.message_handler(content_types=['text'])
def handle_text(message):
    proxies = message.text.splitlines()
    valid_proxies = []
    invalid_proxies = []

    for proxy in proxies:
        if check_proxy(proxy):
            valid_proxies.append(proxy)
        else:
            invalid_proxies.append(proxy)
    
    total = len(proxies)
    valid_count = len(valid_proxies)
    invalid_count = total - valid_count
    
    result_message = f"🔍 Проверено прокси: {total}\n" \
                     f"✅ Валидные: {valid_count}\n" \
                     f"❌ Невалидные: {invalid_count}\n\n"

    if valid_proxies:
        result_message += "*Список валидных прокси:*\n" + "\n".join([f"🔹 `{proxy}`" for proxy in valid_proxies])
    else:
        result_message += "❌ Нет валидных прокси."

    bot.send_message(message.chat.id, result_message, parse_mode="Markdown")

@bot.message_handler(content_types=['document'])
def handle_document(message):
    file_info = bot.get_file(message.document.file_id)
    downloaded_file = bot.download_file(file_info.file_path)
    
    with open(message.document.file_name, 'wb') as new_file:
        new_file.write(downloaded_file)
    
    with open(message.document.file_name, 'r') as file:
        proxies = file.readlines()
    
    os.remove(message.document.file_name)
    
    valid_proxies = []
    invalid_proxies = []
    
    for proxy in proxies:
        proxy = proxy.strip()
        if check_proxy(proxy):
            valid_proxies.append(proxy)
        else:
            invalid_proxies.append(proxy)
    
    total = len(proxies)
    valid_count = len(valid_proxies)
    invalid_count = total - valid_count
    
    result_message = f"🔍 Проверено прокси из файла: {total}\n" \
                     f"✅ Валидные: {valid_count}\n" \
                     f"❌ Невалидные: {invalid_count}\n\n"

    if valid_proxies:
        result_message += "*Список валидных прокси:*\n" + "\n".join([f"🔹 `{proxy}`" for proxy in valid_proxies])
    else:
        result_message += "❌ Нет валидных прокси в файле."

    bot.send_message(message.chat.id, result_message, parse_mode="Markdown")

bot.polling(none_stop=True)