我想(通过PHP)收集当前正在下载的info_hashes或搜索分布式哈希表。
我见过使用分布式哈希表作为搜索引擎的BTDigg,我也想做类似的事情。
另外,在我得到哈希之后,我如何将哈希转换成torrent,这样我就可以获得标题等信息了?(再次使用PHP通过分布式哈希表)。
我首先尝试研究- Query DHT Server尝试通过PHP运行分布式哈希表查询,我尝试进行修改,但我没有运气。我也尝试过http://projects-deim.urv.cat/trac/p2pweb/browser/trunk/dht/dht_agg?rev=1,但它给了我几个错误,经过多次修复后,它仍然不起作用。
发布于 2012-04-12 01:02:41
要实现分布式哈希表节点,您可能需要阅读分布式哈希表规范:
http://www.bittorrent.org/beps/bep_0005.html
它描述了消息的格式。如果你不熟悉底层的分布式哈希表,你可能还需要阅读kademlia的论文:
Kademlia: A Peer-to-peer Information System Based on the XOR Metric
一旦你在分布式哈希表上启动并运行,你开始看到信息散列飞逝,你需要实现一个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。
https://stackoverflow.com/questions/10066985
复制相似问题