BT种子文件 bencoding编码详细解析

BT种子文件使用了一种叫bencoding的编码方法来保存数据。
bencoding现有四种类型的数据:srings(字符串),integers(整数),lists(列表),dictionaries(字典)

编码规则如下:
strings(字符串)编码为:<字符串长度>:<字符串>
例如: 4:test 表示为字符串"test"
4:例子 表示为字符串“例子”
字符串长度单位为字节
没开始或结束标记

integers(整数)编码为:i<整数>e
开始标记i,结束标记为e
例如: i1234e 表示为整数1234
i-1234e 表示为整数-1234
整数没有大小限制
i0e 表示为整数0
i-0e 为非法
以0开头的为非法如: i01234e 为非法

lists(列表)编码为:l<bencoding编码类型>e
开始标记为l,结束标记为e
列表里可以包含任何bencoding编码类型,包括整数,字符串,列表,字典。
例如: l4:test5abcdee 表示为二个字符串["test","abcde"]

dictionaries(字典)编码为d<bencoding字符串><bencoding编码类型>e
开始标记为d,结束标记为e
关键字必须为bencoding字符串
值可以为任何bencoding编码类型
例如: d3:agei20ee 表示为{"age"=20}
d4:path3:C:\8:filename8:test.txte 表示为{"path"="C:\","filename"="test.txt"}

具体文件结构如下:
全部内容必须都为bencoding编码类型。
整个文件为一个字典结构,包含如下关键字
announce:tracker服务器的URL(字符串)
announce-list(可选):备用tracker服务器列表(列表)
creation date(可选):种子创建的时间,Unix标准时间格式,从1970 1月1日 00:00:00到创建时间的秒数(整数)
comment(可选):备注(字符串)
created by(可选):创建人或创建程序的信息(字符串)
info:一个字典结构,包含文件的主要信息,为分二种情况:单文件结构或多文件结构
单文件结构如下:
length:文件长度,单位字节(整数)
md5sum(可选):长32个字符的文件的MD5校验和,BT不使用这个值,只是为了兼容一些程序所保留!(字符串)
name:文件名(字符串)
piece length:每个块的大小,单位字节(整数)
pieces:每个块的20个字节的SHA1 Hash的值(二进制格式)
多文件结构如下:
files:一个字典结构
length:文件长度,单位字节(整数)
md5sum(可选):同单文件结构中相同
path:文件的路径和名字,是一个列表结构,如\test\test.txt 列表为l4:test8test.txte
name:最上层的目录名字(字符串)
piece length:同单文件结构中相同
pieces:同单文件结构中相同
实例:
用记事本打开一个.torrent可以看来类似如下内容
d8:announce35:http://www.manfen.net:7802/announce13:creation datei1076675108e4:infod6:lengthi17799e4:name62:MICROSOFT.WINDOWS.2000.AND.NT4.SOURCE.CODE-SCENELEADER.torrent12:piece lengthi32768e6:pieces20:?W ?躐?緕排T酆ee

很容易看出
announce=http://www.manfen.net:7802/announce
creation date=1076675108秒(02/13/04 20:25:08)
文件名=MICROSOFT.WINDOWS.2000.AND.NT4.SOURCE.CODE-SCENELEADER.torrent
文件大小=17799字节
文件块大小=32768字节

时间: 2024-08-01 19:58:27

BT种子文件 bencoding编码详细解析的相关文章

bt种子文件是什么东西

  现在很多朋友下载东西时都会用bt种子文件,那到底什么是bt种子文件呢?bt种子文件又是怎么用的呢?种子是一个形象的比喻.其实bt种子文件就是记载下载文件的存放位置.大小.下载服务器的地址.发布者的地址等数据的一个索引文件.这个种子文件并不是你最终要下载的东西(如电影,软件,游戏等),但是要下载你需要的东西,就必须先下载种子文件.种子文件的后缀名是:*.torrent. 什么是bt种子文件?bt下载的原理,很复杂,简单说就是在你下载的同时,你也在上传. BitTorrent(简称BT)是一个文

给BT种子文件动动“手术”

  大家已经知道,百度云盘.115网盘等都支持将BT种子文件离线下载到云空间中.但是,有的BT种子一个文件就包含有数千个资源的链接,而我们获取的一个BT种子里,包含的内容不一定全是我们想要的,但用云盘下载时,提交种子给云盘离线下载时没有选择的余地,要么都下载,要么一个也别下.此外,云盘支持离线下载的BT种子中所能包含的文件数量一般也有限制,如115网盘的离线下载,即便是会员也有一次下载2000个文件的限制(图1).那么,如何才能将BT种子中我们不需要的文件剔除掉,只留下我们需要的内容呢? 小提示

搜索次数最多的100个BT种子文件搜索关键词

电影<盗梦空间>(Inception)海报新浪科技讯 北京时间12月28日凌晨消息,BT网站TorrentFreak公布了2010年搜索次数最多的100个BT种子文件搜索关键词,电影<盗梦空间>(Inception).<钢铁侠2>(Iron Man 2)和"2010"名列三甲.值得注意的是,"x级片"和"色情"分别位列第4和第9位,而排名最高的与软件有关的搜索关键词是"Windows 7",

迅雷为什么无法解析BT种子文件?

  [1]判断是个别BT资源问题还是全部. ①可到百度搜索别的BT资源尝试,如是个别BT资源出现的情况, 则是资源本身存在异常或保存资源的服务器已删除该资源了 [2]如是全部BT资源都出现这个情况. ①退出杀毒软件等安全软件. ②如是今天突然出现的问题,建议重新启动电脑尝试. [3]上述皆无效,请卸载迅雷然后登录:dl.xunlei.com/这个页面下载迅雷7最新版本安装包, 重新安装在另外一个磁盘上尝试.(请不要覆盖安装,必须卸载重新安装,不然可能会覆盖上旧问题)

iOS工程文件main.m详细解析

iOS工程文件main.m其实就是一个OC一个类的.m文件,为什么我们看到这个文件的时候不能立刻知道这个文件是一个OC类的.m文件呢? 因为1.OC类一般首字母大写 2.OC类一般都有.h文件 先说在Xcode7.3新建工程里的main.m文件 #import <UIKit/UIKit.h>//载入UIKit框架里的UIKit.h文件,其实只为一个UIApplication.h里的UIApplicationMain C语言函数 #import "AppDelegate.h"

迅雷7如何下载BT种子的文件或者视频

  我们知道迅雷是一款很好用的下载工具,现如今,已经发展到了迅雷7.有时候我们会通过迅雷来下载BT种子的文件或者视频,那么迅雷7是怎么下载BT种子的? 软件名称: 1.首先你要获取你要下载的bt种子文件,你可以去种子资源站下载或者像网友获取你可以直接将BT种子文件直接拖进迅雷,然后点击立即下载,这样迅雷7就下载种子文件了. 2.你也可以先打开迅雷然后点击新建. 3.再点击打开BT种子文件然后选择你要下载的文件点击打开. 4.最后点击立即下载这样迅雷7就下载种子文件了.

迅雷7怎么下载bt种子?

  1.首先你要获取你要下载的bt种子文件,你可以去种子资源站下载或者像网友获取你可以直接将BT种子文件直接拖进迅雷,然后点击<立即下载>,这样迅雷7就下载种子文件了. 2.你也可以先打开迅雷然后点击<新建>; 3.再点击<打开BT种子文件>然后选择你要下载的文件点击<打开>; 4.最后点击<立即下载>这样迅雷7就下载种子文件了.

迅雷7怎么下载bt种子

  1.首先你要获取你要下载的bt种子文件,你可以去种子资源站下载或者像网友获取你可以直接将BT种子文件直接拖进迅雷,然后点击<立即下载>,这样迅雷7就下载种子文件了. 2.你也可以先打开迅雷然后点击<新建> 3.再点击<打开BT种子文件>然后选择你要下载的文件点击<打开> 4.最后点击<立即下载>这样迅雷7就下载种子文件了

qsed种子怎么转换bt种子

  qsed种子转换bt种子方法/步骤: 第一步:先把qsed种子拖到快播里,使种子开始缓冲 第二步:找到快播的安装目录,比如:D:Program FilesQvodPlayer,打开data目录 第三步:此时我们看到data是没有文件的,因为默认这个文件夹里的文件是隐藏的,接下来点击工具下的文件夹选项,在查看选项下找到"显示隐藏的文件,文件夹和驱动器"选中然后确定 第四步:现在就可以看到data文件夹里的隐藏文件了,我们会发现有一个BT种子文件,没错,这个就是我们要的BT种子 第五步