Torrent文件内的数据结构分为以下几部分:
announce:Tracker的主服务器
announce-list:Tracker服务器列表
comment:种子文件的注释
comment.utf-8:种子文件注释的utf-8编码
creation date:种子文件建立的时间,是从1970年1月1日00:00:00到现在的秒数。
encoding:种子文件的默认编码,比如GB2312,Big5,utf-8等
关于这个网络的工作原理,参看: P2P中DHT网络爬虫(链接)以及写了个 磁力搜索的网页。
info:所有关于下载的文件的信息都在这个字段里,它包括多个子字段,而且根据下载的是单个文件还是多个文件,子字段的项目会不同。
当种子里包含多个文件时,info字段包括如下子字段:
files:表示文件的名字,大小,该字段包含如下三个子字段:
lenghth:文件的大小,用byte计算
path:文件的名字,在下载时不可更改
path.utf-8:文件名的UTF-8编码,同上
以上的三个字段每个文件都有一组值。
name:推荐的文件夹名,此项可于下载时更改。
name.utf-8:推荐的文件夹名的utf-8编码,同上。
piece length:每个文件块的大小,用Byte计算
pieces:文件的特征信息,该字段比较大,实际上是种子内包含所有的文件段的SHA1的校验值的连接,即将所有文件按照piece length的字节大小分成块,每块计算一个SHA1值,然后将这些值连接起来就形成了pieces字段,由于SHA1的校验值为20Byte,所以该字段的大小始终为20的整数倍字节。该字段是Torrent文件中体积最大的部分,可见如果大文件分块很小,会造成Torrent文件体积庞大。
announce:Tracker的主服务器
announce-list:Tracker服务器列表
comment:种子文件的注释
comment.utf-8:种子文件注释的utf-8编码
creation date:种子文件建立的时间,是从1970年1月1日00:00:00到现在的秒数。
encoding:种子文件的默认编码,比如GB2312,Big5,utf-8等
关于这个网络的工作原理,参看: P2P中DHT网络爬虫(链接)以及写了个 磁力搜索的网页。
info:所有关于下载的文件的信息都在这个字段里,它包括多个子字段,而且根据下载的是单个文件还是多个文件,子字段的项目会不同。
当种子里包含多个文件时,info字段包括如下子字段:
files:表示文件的名字,大小,该字段包含如下三个子字段:
lenghth:文件的大小,用byte计算
path:文件的名字,在下载时不可更改
path.utf-8:文件名的UTF-8编码,同上
以上的三个字段每个文件都有一组值。
name:推荐的文件夹名,此项可于下载时更改。
name.utf-8:推荐的文件夹名的utf-8编码,同上。
piece length:每个文件块的大小,用Byte计算
pieces:文件的特征信息,该字段比较大,实际上是种子内包含所有的文件段的SHA1的校验值的连接,即将所有文件按照piece length的字节大小分成块,每块计算一个SHA1值,然后将这些值连接起来就形成了pieces字段,由于SHA1的校验值为20Byte,所以该字段的大小始终为20的整数倍字节。该字段是Torrent文件中体积最大的部分,可见如果大文件分块很小,会造成Torrent文件体积庞大。