注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

火力光波的博客

火一般的热情 光一样的速度

 
 
 

日志

 
 

B编码与种子文件结构解析  

2015-10-13 12:02:05|  分类: BT种子 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

一、B编码规则与类型
BT种子文件,使用了一种叫bencoding的编码(简写B编码)方法来保存数据的,它有四种编码类型如下。
字符串
(strings)
编码:<字符串长度>:<字符串>
如,test:4:test
整数 (integers)
编码:i<整数>e
如,1234:i1234e;0:i0e
i01234e是0开头,为非法。
列表 (lists)
编码:l<B编码类型>e
如,[test,abcde]:l4:test5:abcdee
B编码类型,包括整数,字符串,列表,字典。
字典 (dictionaries)
编码:d<关键字><值>e
如,{age=20}:d3:agei20ee ;
       {path=C:/,filename=test.txt}:d4:path3:C:/8:filename8:test.txte
关键字必须为B编码字符串,值可以为任何B编码类型。
二、种子文件结构注释
种子文件分单文件结构或多文件结构(结构图)。
种子文件的全部内容必须都为B编码类型,整个文件为一个字典结构,包含如下关键字。
1、相同的部分
announce:Tracker主服务器URL(字符串) 
announce-list:Tracker备用服务器列表(列表)  
comment:注释(字符串)
comment.utf-8:注释的utf-8编码(字符串)
created by:创建软件(字符串)  
creation date:创建时间,从1970 1月1日 00:00:00到创建时间的秒数(整数) 
encoding:默认编码,比如GB2312,Big5,utf-8等(字符串)
info:种子文件信息(字典)  
ed2k:电驴链接(字符串) 
filehash:文件哈希值(字符串)   
length:文件长度,单位字节(整数)
piece length:每个块的大小,单位字节(整数)   
pieces:每个块的20个字节的sha1 hash的值(二进制格式)(字符串)  
publisher:发布者名字(字符串) 
publisher.utf-8:发布者名字utf-8编码(字符串)
publisher-url:发布者网址(字符串)
publisher-url.utf-8:发布者网址utf-8编码(字符串) 
nodes:节点(列表)
2、多文件结构
files:文件列表(列表下的字典结构)
path:文件路径和名字,下载时不可更改(列表) 
path.utf-8:文件路径和名字的UTF-8编码(列表)   
name:推荐的目录名,下载时可更改(字符串) 
name.utf-8:目录名的utf-8编码(字符串)   
3、单文件结构
name:文件名,此项可下载时更改(字符串) 
name.utf-8:文件名的utf-8编码(字符串)
三、B编码实例分析
1、用记事本打开种子文件
如,终结者:创世纪.torrent,复制开始的部分内容如下:
d8:announce41:http://tracker.trackerfix.com:80/announce13:announce-
listll41:http://tracker.trackerfix.com:80/announceel30:udp://9.rarbg.me:2710/announceel30:udp://9.rarbg.to:2710/announceee7:comment40:Torrent downloaded from https://rarbg.to10:created by13:mktorrent 1.013:creation datei1438987059e4:infod5:filesld6:lengthi1016764e4:pathl13:RARBG.com.mp4eed6:lengthi34e4:pathl13:RARBG.com.txteed6:lengthi3782928466e4:pathl64:Terminator.Genisys.2015.1080p.HDRip.KORSUB.x264.AAC2.0-RARBG.mp4eed6:lengthi3193e4:pathl64:Terminator.Genisys.2015.1080p.HDRip.KORSUB.x264.AAC2.0-RARBG.nfoeee4:name60:Terminator.Genisys.2015.1080p.HDRip.KORSUB.x264.AAC2.0-RARBG12:piece lengthi1048576e6:pieces72180:⺗}]桃郡6
2、逐项逐条对照注释分析
主服务器:{announce=http://tracker.trackerfix.com:80/announce
备用服务器:announce-list
  [[http://tracker.trackerfix.com:80/announce]
  [udp://9.rarbg.me:2710/announce]
  [udp://9.rarbg.to:2710/announce]]
注释:comment=Torrent downloaded from https://rarbg.to 
创建软件:created by=mktorrent 1.0
创建时间:creation date=1438987059
文件信息:info
文件列表:{files[
文件1长度:{length=1016764
文件1名称:path=[RARBG.com.mp4]}
文件2长度:{length=34
文件2名称:path=[RARBG.com.txt]}
文件3长度:{length=3782928466
文件3名称:path=[Terminator.Genisys.2015.1080p.HDRip.KORSUB.x264.AAC2.0-RARBG.mp4]}
文件4长度:{length=3193
文件4名称:path=[Terminator.Genisys.2015.1080p.HDRip.KORSUB.x264.AAC2.0-RARBG.nfo]}]
文件夹名称:name=Terminator.Genisys.2015.1080p.HDRip.KORSUB.x264.AAC2.0-RARBG
分块的大小:piece length=1048576
每块sha1 hash值:pieces=⺗}]桃郡6
其中,{ } 表示字典;[ ] 表示列表。
对种子文件进行分析,可还用在线工具,也可下载专门软件。我个人认为较好的是《BEncode Editor编辑器》。

参考:
bt种子文件解析-图书馆 
BT种子文件编码详解  
torrent文件分析 
BT协议-torrent编码
B编码与种子文件结构
BitTorrent详解
BitTorrent协议详解 
B编码方式及torrent文件内容 
常见P2P协议之BitTorrent分析
Bencode的编码与解码
bt种子文件代码解析 

  评论这张
 
阅读(356)| 评论(5)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018