Хэш-список 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 но это дало мне несколько ошибок, и после многих исправлений это все еще не работало.
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.