Torrent 文件图文解析

Torrent文件格式分析


首先,我在网上找一个最近比较流行的大片《环太平洋》的torrent文件。通过用UE把它打开,我们来看一下此torrent文件的内容:

d8:announce39:http://tracker.bestxl.com:8077/announce13:announce-listll39:http://tracker.bestxl.com:8077/announceel30:http://tracker.prq.to/announceee8:codepagei936e13:creation datei1381766089e4:infod5:filesld6:lengthi202e4:pathl40:本片简介,海报,截图等,双击进入查看.urle10:path.utf-8l58:鏈墖绠€浠嬶紝娴锋姤锛屾埅鍥剧瓑锛屽弻鍑昏繘鍏ユ煡鐪?urleed6:lengthi275e4:pathl37:飞鸟网-和浪子一起来开心农场偷菜吧.urle10:path.utf-8l53:椋為笩缃?鍜屾氮瀛愪竴璧锋潵寮€蹇冨啘鍦哄伔鑿滃惂.urleed6:lengthi266e4:pathl45:飞鸟娱乐-边看电影边学英语,娱乐学习两不误.urle10:path.utf-8l65:椋為笩濞变箰-杈圭湅鐢靛奖杈瑰鑻辫锛屽ū涔愬涔犱袱涓嶈.urleed6:lengthi2640e4:pathl37:飞鸟娱乐论坛-超多最新爆爽资源下载.rtfe10:path.utf-8l53:椋為笩濞变箰璁哄潧-瓒呭鏈€鏂扮垎鐖借祫婧愪笅杞?rtfeed6:lengthi288e4:pathl45:飞鸟娱乐原创IMDB TOP250 经典大片 一网打尽.urle10:path.utf-8l59:椋為笩濞变箰鍘熷垱IMDB TOP250 缁忓吀澶х墖 涓€缃戞墦灏?urleed6:lengthi2195501970e4:pathl55:环太平洋 Pacific.Rim.2013.BluRay.720p.x264.AAC-LZHD.mp4e10:path.utf-8l59:鐜お骞虫磱 Pacific.Rim.2013.BluRay.720p.x264.AAC-LZHD.mp4eed6:lengthi266e4:pathl35:老调网-下载中英字幕电影的好地方.urle10:path.utf-8l50:鑰佽皟缃?涓嬭浇涓嫳瀛楀箷鐢靛奖鐨勫ソ鍦版柟.urleee4:name51:环太平洋 Pacific.Rim.2013.BluRay.720p.x264.AAC-LZHD10:name.utf-855:鐜お骞虫磱 Pacific.Rim.2013.BluRay.720p.x264.AAC-LZHD12:piece lengthi2097152e6:pieces20940:(此处省略20940个字节的hash值,每个piece的hash值占用20个字节,即20940/20=1047个piece。) 9:publisher8:飞鸟娱乐13:publisher-url21:http://bbs.hdbird.com19:publisher-url.utf-821:http://bbs.hdbird.com15:publisher.utf-812:椋為笩濞变箰e5:nodesll21:router.bittorrent.comi6881eel20:router.lanspirit.neti53eeee

 

 

下面我们开始详细讲解一下torrent文件格式:

B编码

为了在torrent文件中存储bt下载所需信息,需要一定规范记录这些信息,在这里torrent文件使用的是BEncode格式规范,和JSON一样,本质都是用来交换和存储信息。BEncode有四种存储类型:(字符串型、数值型、列表型、字典型)

1、 字符串[string]

字符串表示方式为:数字前缀:字符串,例如super表示为:5:super 数字前缀以十进制数字指出字符串的长度。例如:

0:””

4:大庆

6:daqing

15:www.sina.com.cn

2、 数值[integers]

数值的表示方式为:以小写字母”i”开始,以小写字母”e”结尾,ie中间放置十进制数值。例如:

i0e 表示数字0(零)

i-3e表示数字-3

i7e 表示数字7

3、 列表[list]

列表类型允许嵌套,列表中的可以存储列表,列表的表示方式:以小写字母l开始,以小写字母e结尾,le中间放置存储的内容。例如:

l7:figo’s4:blog3:url23:http://news.sina.com.cne

该list的内容为[‘super’s’ , ’blog’ , ’url’ , ’http://news.sina.com.cn’]

l4:yeari2013ee

该list的内容为[‘year’,2013]

4、 字典[dictionary]

字典是为了让一个具体的名字[name]与一个具体的数据类型表示的数据关联,上面三种类型(字符串、整数、列表)的数据只是单纯的表示数据本身,并未有变量名来指出该数据名称。字典类似C语言变量的定义,例如定义一个名为strName的字符串如下:

Char *strName=NULL;

strName指向字符串”Figo”时,那么当我们说strName时也即在说”Figo”。

BEncode中字典类型的存在,就是为了让数据与名称关联配对,也即dictionary后的数据要两两配对。这里需要注意的是,<

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值