Вопрос

Я пытаюсь получить список IP-адресов, обслуживающих или загружаю файл. Что я сделал, было связаться с трекером, как OpenBittorrent.com, чтобы получить следующее (как часть файла Scrape):

B%00%00%0C%5F%B1%B1l%CAGa%84S%CB%B0%9BG%84%3BE:0:1

Теперь длинная строка в начале является информационная хеш. Как следующий шаг, я сделал это:

http://tracker.sometracker.com/announce?info_hash=B%00%00%0C%5F%B1%B1l%CAGa%84S%CB%B0%9BG%84%3BE

Это вернуло мне следующее. Все идет нормально. Сообщение содержало это:

d8:completei0e10:downloadedi0e10:incompletei2e8:intervali1931e12:min intervali965e5:peers12:U���ٿ��ӣǣ^@^@e

Может кто-нибудь сказать мне, что мне делать после этого, чтобы получить IP-адреса, которые в настоящее время служат файл или загрузка его?

Это было полезно?

Решение

Это не торрент-файл, это объявление ответа. Они оба бенкуда (используют бенкуд Чтобы декодировать их), но ответ объявлений содержит только информацию о сверстниках. Это недостаточно информации, чтобы иметь возможность скачать содержимое Torrent: для этого вам понадобится сам файл торрента.

То peers Член словаря Bencoded содержит группы по 6 байта, которые вы можете распаковать с struct. Отказ Первые четыре байта являются IP-адрес, а затем два байта для порта. Это компактное объявление ответа, которое обычно (но только IPv4, очевидно). Вы также можете увидеть некомпактные ответы, которые дают вам прозрачный словарь.

Многие трекеры сегодня не будут говорить с вами с неспецифической Scrape объявить, что вы отправляете, или первоначальный запрос объявления, который не включает compact, port или event. Отказ Вы, вероятно, должны прочитать Протокол немного перед тем, как идти дальше.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top