82 lines
3.0 KiB
Python
82 lines
3.0 KiB
Python
import asyncio
|
|
import aiohttp
|
|
import sys
|
|
from config import PROXY_URL, PROXY_TYPE
|
|
|
|
|
|
async def check_proxy():
|
|
"""Проверка работоспособности прокси"""
|
|
|
|
if not PROXY_URL:
|
|
print("❌ Прокси не настроен в файле .env")
|
|
return False
|
|
|
|
print(f"\n🔍 Проверяем прокси: {PROXY_URL}")
|
|
print(f"📡 Тип прокси: {PROXY_TYPE.upper()}")
|
|
print("-" * 50)
|
|
|
|
success_count = 0
|
|
total_tests = 0
|
|
|
|
# Тест 1: Проверка подключения к Telegram API
|
|
print("\n📡 Тест: Подключение к API...")
|
|
test_urls = [
|
|
("Telegram API", "https://api.telegram.org"),
|
|
("Google", "https://google.com"),
|
|
("IP Check", "https://api.ipify.org?format=json")
|
|
]
|
|
|
|
for name, url in test_urls:
|
|
total_tests += 1
|
|
print(f" → Проверяю {name}...")
|
|
try:
|
|
async with aiohttp.ClientSession() as session:
|
|
async with session.get(url, proxy=PROXY_URL, timeout=10) as response:
|
|
if response.status == 200:
|
|
print(f" ✅ Успешно (статус: {response.status})")
|
|
success_count += 1
|
|
if "ipify" in url:
|
|
data = await response.json()
|
|
print(f" 🌐 Ваш IP через прокси: {data.get('ip')}")
|
|
else:
|
|
print(f" ❌ Ошибка: статус {response.status}")
|
|
except asyncio.TimeoutError:
|
|
print(f" ❌ Таймаут подключения")
|
|
except Exception as e:
|
|
print(f" ❌ Ошибка: {type(e).__name__}")
|
|
|
|
# Результат
|
|
print("\n" + "=" * 50)
|
|
if success_count == total_tests:
|
|
print("✅ ПРОКСИ РАБОТАЕТ!")
|
|
print("=" * 50)
|
|
return True
|
|
else:
|
|
print(f"⚠️ ПРОКСИ РАБОТАЕТ ЧАСТИЧНО ({success_count}/{total_tests} тестов)")
|
|
print("=" * 50)
|
|
return True if success_count > 0 else False
|
|
|
|
|
|
async def main():
|
|
print("\n" + "=" * 50)
|
|
print("🔍 ПРОВЕРКА ПРОКСИ ДЛЯ TELEGRAM БОТА")
|
|
print("=" * 50)
|
|
|
|
result = await check_proxy()
|
|
|
|
if result:
|
|
print("\n✅ ПРОКСИ РАБОТАЕТ! Можно запускать бота.")
|
|
print("\nЗапустите бота командой: python bot.py")
|
|
else:
|
|
print("\n❌ ПРОКСИ НЕ РАБОТАЕТ! Бот не сможет подключиться.")
|
|
print("\nРекомендации:")
|
|
print("1. Проверьте правильность данных в файле .env")
|
|
print("2. Убедитесь, что прокси-сервер активен")
|
|
print("3. Попробуйте другой прокси")
|
|
|
|
return 0 if result else 1
|
|
|
|
|
|
if __name__ == "__main__":
|
|
exit_code = asyncio.run(main())
|
|
sys.exit(exit_code) |