Skip to content

Fynex-x/Python-bot-telegram-numbers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔍 Telegram Number Checker

Профессиональный инструмент для массовой проверки телефонных номеров на регистрацию в Telegram.

🎯 Возможности

  • ✅ Проверка существования аккаунтов Telegram по номерам телефонов
  • 📊 Детальная информация о найденных пользователях
  • ⚡ Автоматическая обработка лимитов и ошибок
  • 💾 Сохранение результатов в удобном формате
  • 🔄 Продолжение работы после перезапуска

🛠 Технологический стек

Компонент Версия Назначение
Python 3.7+ Основной язык программирования
Telethon 1.34+ Официальная Telegram API библиотека
tqdm 4.66+ Индикатор прогресса
Telegram API Latest Взаимодействие с мессенджером

📁 Структура проекта

telegram-checker/
├── 📄 check_numbers.py         # Основной исполняемый скрипт
├── 📄 numbers.txt              # Список номеров для проверки
├── 📄 config.txt               # Конфигурация API (автогенерация)
├── 📄 user_session.session     # Сессия авторизации
├── 📄 existing_numbers.txt     # Результат: существующие номера
├── 📄 non_existing_numbers.txt # Результат: проблемные номера
├── 📄 LICENSE                  # Лицензия 
└── 📄 README.md                # Документация

🚀 Быстрый старт

1. Предварительные требования

Системные требования:

  • Python 3.7 или выше
  • Активный аккаунт Telegram
  • Доступ к интернету

Важно перед началом:

  1. Отключите двухфакторную аутентификацию в Telegram
  2. Убедитесь, что у аккаунта нет пароля
  3. Подготовьте список номеров в формате +79123456789

2. Установка

# Клонирование репозитория
git clone https://github.com/ваш-username/telegram-number-checker.git
cd telegram-number-checker

# Установка зависимостей
pip install telethon tqdm

3. Настройка API

  1. Перейдите на my.telegram.org
  2. Авторизуйтесь через свой аккаунт Telegram
  3. Создайте новое приложение в разделе "API Development Tools"
  4. Скопируйте полученные API_ID и API_HASH

4. Подготовка данных

Создайте файл numbers.txt с номерами для проверки:

+79123456789
+79234567890
+79345678901
+79456789012

Формат обязателен: +7XXXXXXXXXX или +XXXXXXXXXXX

5. Запуск проверки

python check_numbers.py

📊 Процесс работы

🔐 Этап 1: Авторизация

  • Запрашиваются API_ID и API_HASH (только при первом запуске)
  • Создается файл сессии для повторных запусков
  • Выполняется вход в аккаунт Telegram

📋 Этап 2: Загрузка данных

  • Чтение номеров из numbers.txt
  • Валидация формата номеров
  • Подготовка структуры результатов

🔍 Этап 3: Проверка номеров

Для каждого номера выполняется:

  1. Создание временного контакта с именем "1", "2", "3"...
  2. Попытка импорта контакта через Telegram API
  3. Анализ ответа API
  4. Запись результата в соответствующий файл
  5. Пауза 7 секунд между запросами

💾 Этап 4: Сохранение результатов

  • existing_numbers.txt - аккаунты найденные
  • non_existing_numbers.txt - номера с проблемами

📈 Форматы результатов

Существующие номера (existing_numbers.txt)

Номер | Имя пользователя | Имя/Фамилия | Статус
+79123456789 | @username | Иван Иванов | Активен
+79234567890 | Нет | Петр Петров | Не в сети давно
+79345678901 | @another_user |  | Заблокирован

Проблемные номера (non_existing_numbers.txt)

Номер | Причина
+79456789012 | Не зарегистрирован в Telegram
+79567890123 | Неверный формат номера
+79678901234 | Ошибка: FloodWaitError

⚙️ Конфигурация

Файл config.txt

1234567              # API_ID
a1b2c3d4e5f6a1b2c3d4 # API_HASH

Параметры скрипта

Параметр Значение Описание Задержка 7 секунд Между запросами Лимит ~15 номеров/мин Безопасный режим Формат номеров +XXXXXXXXXXX С кодом страны Контакты 1, 2, 3... Имена для импорта

🛡️ Меры безопасности

Рекомендации

  • ✅ Используйте отдельный аккаунт Telegram
  • ✅ Отключите 2FA перед использованием
  • ✅ Храните session файл в безопасности
  • ✅ Не делитесь API ключами
  • ✅ Соблюдайте лимиты Telegram

Ограничения

  • ❌ Не более 200 номеров за сессию
  • ❌ Избегайте массовых проверок за короткое время
  • ❌ Не используйте основной аккаунт

🚨 Обработка ошибок

Типичные ошибки и решения

Ошибка Причина Решение
PhoneNumberInvalidError Неверный формат Используйте формат +7XXXXXXXXXX
FloodWaitError Лимит запросов Скрипт автоматически ждет
SessionPasswordNeededError Включена 2FA Отключите пароль в Telegram
PhoneNumberBannedError Номер заблокирован Невозможно проверить

📝 Особенности реализации

Алгоритм проверки

1. ImportContactsRequestИмпорт временного контакта
2. Анализ response.usersПроверка существования
3. Извлечение данныхUsername, имя, статус
4. КлассификацияСуществует/Не существует

Оптимизации

  • Кэширование API ключей
  • Сохранение сессии авторизации
  • Прогресс-бар с tqdm
  • Автовосстановление после FloodWait

🔄 Жизненный цикл сессии

  1. Первая авторизация → Ввод кода из Telegram
  2. Повторный запуск → Использование session файла
  3. Истечение сессии → Переавторизация по коду
  4. Завершение работы → Корректное отключение

📊 Производительность

Показатели

  • Скорость проверки: ~8 номеров/минуту
  • Потребление памяти: < 50 МБ
  • Дисковое пространство: ~1 КБ на номер
  • Сетевая активность: Минимальная

Оптимальные настройки

DELAY_BETWEEN_REQUESTS = 7  # секунд
MAX_NUMBERS_PER_SESSION = 200
BATCH_SIZE = 1  # по одному номеру

🤝 Поддержка и помощь

Частые вопросы

Q: Почему скрипт работает медленно?
A: Задержка 7 секунд нужна для избежания блокировки аккаунта.

Q: Какой формат номеров нужен?
A: Обязательно с + и кодом страны: +79123456789

Q: Можно ли проверять иностранные номера?
A: Да, в формате +КодСтраныНомер, например +441234567890

Q: Что делать при ошибке сессии?
A: Удалите user_session.session и перезапустите скрипт.

📈 Мониторинг и логирование

Скрипт предоставляет:

  • Визуальный прогресс-бар
  • Статус каждого номера в реальном времени
  • Подробные логи ошибок
  • Сводку по завершении

About

Python bot for breaking through and adding telegram numbers.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages