torrent hash怎么用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了torrent hash怎么用相关的知识,希望对你有一定的参考价值。

与特征码的用法一样。在hash前加上“magnet:?xt=urn:btih:”,再复制进迅雷里面,就能得到种子。torrent文件本质上是文本文件,包含Tracker信息和文件信息两部分。

    Tracker信息主要是BT下载中需要用到的Tracker服务器的地址和针对Tracker服务器的设置,文件信息是根据对目标文件的计算生成的,计算结果根据BitTorrent协议内的B编码规则进行编码。

    它的主要原理是需要把提供下载的文件虚拟分成大小相等的块,块大小必须为2k的整数次方(由于是虚拟分块,硬盘上并不产生各个块文件),并把每个块的索引信息和Hash验证码写入.torrent文件中;所以,.torrent文件就是被下载文件的“索引”。

    根据BitTorrent协议,文件发布者会根据要发布的文件生成提供一个种子文件。下载者要下载文件内容,需要先得到相应的种子文件,然后使用BT客户端软件进行下载。

参考技术A

与特征码的用法一样。在hash前加上“magnet:?xt=urn:btih:”,再复制进迅雷里面,就能得到种子。torrent文件本质上是文本文件,包含Tracker信息和文件信息两部分。

    Tracker信息主要是BT下载中需要用到的Tracker服务器的地址和针对Tracker服务器的设置,文件信息是根据对目标文件的计算生成的,计算结果根据BitTorrent协议内的B编码规则进行编码。

    它的主要原理是需要把提供下载的文件虚拟分成大小相等的块,块大小必须为2k的整数次方(由于是虚拟分块,硬盘上并不产生各个块文件),并把每个块的索引信息和Hash验证码写入.torrent文件中;所以,.torrent文件就是被下载文件的“索引”。

    根据BitTorrent协议,文件发布者会根据要发布的文件生成提供一个种子文件。下载者要下载文件内容,需要先得到相应的种子文件,然后使用BT客户端软件进行下载。

python libtorrent 如何从 info_hash 获取 torrent 文件列表?

【中文标题】python libtorrent 如何从 info_hash 获取 torrent 文件列表?【英文标题】:python libtorrent How I get file list of torrent from info_hash? 【发布时间】:2014-11-23 04:20:41 【问题描述】: def magnet2torrent(id, info_hash): info_hash_id=id 磁铁="磁铁:?xt=urn:btih:"+info_hash ses = lt.session() 参数 = 'save_path': './', 'duplicate_is_error':是的, 'storage_mode': lt.storage_mode_t(2), “暂停”:错误, 'auto_managed':是的, 'duplicate_is_error':真 句柄 = lt.add_magnet_uri(ses, 磁铁, 参数) print("正在下载元数据(这可能需要一段时间)") 我 = 0; 而(不是handle.has_metadata()): # i = i+1 如果我 > 300 : 返回 睡觉(1) ses.pause() 打印(“完成”) torinfo = handle.get_torrent_info() con = db.get_conncetion() cur = con.cursor() 对于 torinfo 中的 f: cur.execute("INSERT INTO file_list (info_hash_id, name, size) VALUES (\""+str(info_hash_id)+"\", \""+str(f.path)+"\", "+str(f .size)+");") print("INSERT INTO file_list (info_hash_id, name, size) 值 (\""+str(info_hash_id)+"\", \""+str(f.path)+"\", "+str(f.size )+");") con.commit() cur.close() con.close()

我想如果我可以从 info_hash 中获取 torrent 文件,那么我可以从 torrent 文件中获取文件列表。

但是当我运行我的代码时

while (not handle.has_metadata()):
没有结束。 但是像http://magnet2torrent.com这样的网页立即给我torrent

如何从 info_hash 中获取文件列表?

【问题讨论】:

【参考方案1】:

如果您的磁力链接中没有任何跟踪器,则需要启动 DHT。你可以通过调用来做到这一点:

ses.add_dht_router("router.utorrent.com", 6881)
ses.start_dht()

在构造会话对象之后。

【讨论】:

我添加了类似
 magnet="magnet:?xt=urn:btih:"+info_hash ses = lt.session() ses.add_dht_router("router.utorrent.com", 6881)ses.start_dht()参数= 'save_path':'./','duplicate_is_error':真,'storage_mode':lt.storage_mode_t(2),'暂停':假,'auto_managed':真,'duplicate_is_error ': True  handle = lt.add_magnet_uri(ses, magnet, params)
但循环未结束
你有没有找到任何同行?你最终在 DHT 路由表中有任何节点吗?

以上是关于torrent hash怎么用的主要内容,如果未能解决你的问题,请参考以下文章

解码 Torrent 跟踪器抓取的 Torrent Hash?

Rest API 根据 torrent Hash 获取 Torrent 信息

Objective-C iOS 从 Torrent 文件生成 Info_Hash

python libtorrent 如何从 info_hash 获取 torrent 文件列表?

torrent search engine怎么用

Libtorrent torrent->磁铁