BT种子文件使用一种叫做bencoding的编码方法保存数据。
bencoding有四种类型的数据:字符串、整数、列表和分散
编码规则如下。
字符串(字符串)被编码为字符串长度
例如,4:test表示为字符串test
4:例表示为字符串“例”
字符串长度的单位是字节
没有开始或结束标记
integers (整数)编码为I整数e
开始标志I、结束标志e
例如,i1234e表示为整数1234
i-1234e表示为整数-1234
整数没有大小限制
i0e表示为整数0
i-0e是违法的
以0开头的是非法的,例如i01234e是非法的
lists (列表)代码是lb编码类型e
开始标志为l,结束标志为e
该列表可以包含任何bencoding代码类型,例如整数、字符串、列表或词典。
例如,l4:test5abcdee表示为两个字符串[test,abcde]
dictionaries (词典)编码为dbencoding字符串bencoding编码类型e
开始标志为d,结束标志为e
关键字必须是bencoding字符串
该值可以是任何bencoding编码类型
例如,d3:agei20ee表示为{age=20}
d 4: path : c :/8: filename 8: test.txte表示为{path=C:/,filename=test.txt}
具体的文件结构如下。
所有内容都必须是bencoding编码类型。
整个文件是词典结构,包含以下关键字
announce:跟踪器的URL (字符串)
可选:备用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时,您将看到以下内容
d 8: announce 353360http://www.manfen.net :7802/announce 1: creation datei 10766675108 e 4: infod 6: lengthi 17799 e 4: 跛? 22222ee
容易理解
announce=http://www.manfen.net :7802/announce
creation date=1076675108秒(02/13/04 20:25:08 )
文件名=Microsoft.windows.2000.and.nt4.source.code-scene leader.torrent
文件大小=17799字节
块大小=32768字节