Хэш-список PHP DHT-информации?


Я хотел бы (с помощью PHP) собрать загружаемые в настоящее время хэши info_hash или выполнить поиск в DHT.

Я видел BTDigg, который использует DHT для поисковой системы, и я хотел бы сделать что-то подобное.

Кроме того, после того, как я получу хэши, как мне преобразовать хэш в торрент, чтобы я мог получить такую информацию, как название и т. Д.? (еще раз через DHT с использованием PHP).

Я попытался сначала исследовать - Сервер DHT запросов пытается выполнить запрос DHT через PHP, я попытался сделать модификации, но мне не повезло. Я также пробовал http://projects-deim.urv.cat/trac/p2pweb/browser/trunk/dht/dht_agg?rev=1 но это дало мне несколько ошибок, и после многих исправлений это все еще не работало.

Author: Community, 2012-04-09

1 answers

Чтобы реализовать узел DHT, вы, вероятно, захотите прочитать спецификацию DHT:

Http://www.bittorrent.org/beps/bep_0005.html

Он описывает формат сообщения. Если вы не знакомы с базовым DHT, вам, вероятно, также нужно прочитать статью kademlia:

Http://www.cs.rice.edu/Conferences/IPTPS02/109.pdf

Как только вы подключитесь к DHT и начнете видеть, как пролетают информационные хэши, вам нужно реализовать bittorrent клиент. Или, по крайней мере, голые кости одного из них, чтобы устанавливать одноранговые соединения и разговаривать с подмножеством протокола bittorrent, который описан здесь:

Http://www.bittorrent.org/beps/bep_0003.html

В основном вам просто нужно иметь возможность установить TCP-соединение и обменяться рукопожатием, как будто у вас ничего нет. Затем, чтобы загрузить метаданные (или файл .torrent), вам необходимо поддерживать расширение ut_metadata, которое находится поверх общего протокола расширения, описанного здесь:

Http://www.bittorrent.org/beps/bep_0010.html

Расширение Ut_metadata описано здесь:

Http://www.bittorrent.org/beps/bep_0009.html

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

Учитывая, что это довольно большая работа в совокупности, вы можете рассмотреть возможность использования библиотек, которые уже делают это, и каким-то образом подключить их к php. Вы можете, например, взглянуть на libtorrent.

 9
Author: Arvid, 2012-04-11 17:02:40