我从bittorrent标准构建了一个读取/使用最佳环保计划5的DHT爬虫。有了它,我可以从洪流中收集信息散列,并为对等点查询DHT节点。这样说,有:
我怎样才能下载这条急流?
最佳环保计划9建议采用以下形式的磁铁模式(省略跟踪器和名称部分):
magnet:?xt=urn:btih:<info-hash>&dn=<name>&tr=<tracker-url>&x.pe=<peer-address>使用这种方法,我当前的急流客户端(传输)被困在尝试获取对等端。为了防止兼容性问题,我尝试了许多其他客户没有运气。
我的第二种方法是将相应的DHT节点临时加载到客户端,并以以下最简单的形式加载磁铁url:
magnet:?xt=urn:btih:<info-hash>没有结果。
在下面的代码中,假设我们从侦听DHT节点"router.bittorrent.com:6881“收到的信息散列”
import libtorrent as lt
import time
session = lt.session()
session.listen_on(6881, 6891)
session.add_dht_router("router.bittorrent.com", 6881)
session.start_dht()
time.sleep(1)
params = {"url":"magnet:?xt=urn:btih:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "save_path":'.'}
h = session.add_torrent(params)
while (not h.has_metadata()):
time.sleep(1)
# download...为澄清第一种方法而进行的小编辑:
我刚刚从DHT中的一个信息散列中发现了一个对等点,它的ip: X:Y端口和ip: Z:Y端口逻辑中的另一个对等点,下面的磁铁,粘贴在任何支持BEP 9的急流客户机中,难道不应该下载这个流吗?
magnet:?xt=urn:btih:<info-hash>&x.pe=X:Y&x.pe=Z:Y发布于 2022-11-10 20:26:06
如果你需要一个总体的概述,磁铁链接下载如何在原则上,那么这个答案应该涵盖它。
如果您想调试您的实现,您将需要深入研究细节,并确保所有必要的步骤都是可观察的,这样您就可以检查什么东西失败了。
https://stackoverflow.com/questions/74312036
复制相似问题