PHP DHT info_hash列表?

问题描述 投票:4回答:1

我想(通过PHP)收集当前正在下载的info_hash或搜索DHT。

我看过BTDigg,它在搜索引擎中使用DHT,并且我想做类似的事情。

而且,在获得哈希之后,如何将哈希转换为种子文件,以便获得标题等信息? (再次通过DHT使用PHP)。

[我尝试先进行研究-Query DHT Server尝试通过PHP运行DHT查询,我尝试进行修改,但没有运气。我也尝试过http://projects-deim.urv.cat/trac/p2pweb/browser/trunk/dht/dht_agg?rev=1,但它给了我几个错误,经过多次修复,仍然不起作用。

php bittorrent dht
1个回答
9
投票

要实现DHT节点,您可能需要阅读DHT规范:

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

它描述消息格式。如果您不熟悉底层的DHT,则可能还需要阅读kademlia论文:

Kademlia: A Peer-to-peer Information System Based on the XOR Metric

一旦在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

您拥有用于看到的散列的元数据,本质上应该设置好。然后,只需从torrent文件中提取和索引信息,例如名称,文件名,文件大小等(您实际上只是得到torrent文件的信息字典,但这是重要的部分)。

鉴于这是一项相当大的工作,您可能想看看使用已经做到这一点的库,并以某种方式将它们引入php。例如,您可能想看看libtorrent

© www.soinside.com 2019 - 2024. All rights reserved.