TGViewer
BritLab BritLab @ru_vm · 1.26K subscribers
Post #25 8.32K
Сбор данных из DHT (Пишем свой аналог IKnowWhatYouDownload)

После моего прошлого поста прилетело много фидбэка. Я не эксперт в области торрентов, но благодаря комментариям узнал несколько интересных нюансов. Это вдохновило меня на создание мини-аналога IKnowWhatYouDownload, и, как оказалось, его можно сделать буквально за пару часов.

Начнем с базы
Разберемся, как работает IKnowWhatYouDownload (и подобные агрегаторы).
Вот что говорят его создатели:
Торрент-файлы попадают в нашу базу данных несколькими способами. Во-первых, мы собираем новинки с популярных торрент-сайтов (как зарубежных, так и российских). Во-вторых, у нас есть компоненты, которые постоянно мониторят DHT-сеть. Если кто-то ищет или анонсирует infohash, мы также добавляем его в базу.

Данные по одному торрент-файлу собираются раз в несколько часов. Чем дольше вы находитесь на раздаче, тем выше вероятность попасть в нашу базу. Данные на сайте обновляются с задержкой в сутки.


Что такое DHT?
DHT (Distributed Hash Table) — это технология, которая используется в торрент-сетях для децентрализованного поиска участников раздачи (пиров) без необходимости подключения к центральному трекеру. Вместо того чтобы полагаться на сервер, DHT позволяет каждому участнику сети хранить и обмениваться информацией о пирах напрямую.

Проще говоря, DHT хранит данные о том, какие пиры участвуют в раздаче конкретного торрента (по его info_hash). Когда вы обращаетесь к DHT, другие узлы сети возвращают список IP-адресов и портов, которые они знают для данного торрента. Именно эту информацию собирают агрегаторы, делая запросы с определенным интервалом.

Как написать свой агрегатор?
После изучения вышеперечисленных деталей стало понятно, что для создания своего аналога нужно выполнить следующие шаги:
1️⃣ Собрать хэши интересующих раздач с трекеров;
2️⃣ Делать запросы в DHT по каждому хэшу, чтобы получить IP-адреса и порты пиров, участвующих в раздаче, и сохранять их в удобном формате (например, JSON).
3️⃣ Загружать данные в базу для дальнейшей обработки и отображения пользователю.
4️⃣ Повторять процесс с определенным интервалом (например, раз в час).

Пункты 1, 3 и 4 довольно просты (для первого понадобится VPN, а для остальных есть множество готовых гайдов).

Самый сложный - это пункт 2. Документации и гайдов по работе с DHT мало, а готового кода я не нашел. Поэтому пришлось немного по python-ить самостоятельно.

Что получилось?
Я написал скрипт, который:
1️⃣ Принимает на входе хэш торрента (либо файл с набором хэшей)
2️⃣ Делает запрос к DHT и сохраняет результаты в JSON-файл (ключом в файле является хэш торрента, а значением — список IP-адресов и портов пиров, участвующих в раздаче)

Для теста я нагуглил хэш торрента с игрой "Ведьмак 3".
В результате работы скрипта отображается информация об активных на текущий момент пирах (скрины работы в комментариях): часть пиров совпала с данными IKnowWhatYouDownload, а часть — нет (IKnowWhatYouDownload работает с задержкой в сутки + некоторые клиенты могут появляться и исчезать довольно быстро и агрегатор может не успевать их собирать). Т.е получилось собрать больше данных, чем у вышеупомянутого агрегатора (мини-успех).
Итоговый скрипт залил на GitHub.

Важный момент: пользователи могут отключать DHT (он включен по умолчанию). В таком случае этот способ их не "обнаружит" (как и агрегаторы).

Если тема вызовет интерес, я глубже погружусь в работу торрентов и расскажу, как пользователи могут "обманывать" агрегаторов, которые следят за DHT.

@ru_vm
#ru_vm #Торренты #DHT #ИнформационнаяБезопасность #Разработка
  • 👍 9
  • 🔥 4
  • 😱 4
  • ❤ 1
More from @ru_vm
  1. Apr 23, 2026Бесплатный Google Proxy Несколько лет назад в Google Переводчике была фича, благодаря кото…
  2. Apr 4, 2026Не спеши уходить удалять username, если больше не хочешь вернутся Последние пару месяцев в…
  3. Jan 16, 2026БлоХчейн Каждый раз, меняя телефон или компьютер, мы теряем часть данных: фотографии, заме…
  4. Oct 11, 2025Прежде чем вновь исчезнуть, хочу поделиться одной из самых надежных методик оценки контраг…
  5. Oct 11, 2025Где же я пропадал все это время? Привет всем! Меня так давно не было, что пора поделиться…
  6. Aug 1, 2025Паша, что ты сделал? Вчера наткнулся на информацию, что в Telegram появится поиск по упоми…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →