bt种子文件文件结构分析(转)

估计80%以上接触互联网的人都知道bt是什么东西,任何一个用bt下载的人都知道这样一个概念,种子。bt种子就是记录了p2p对等网络中tracker, nodes, files等信息,也就是说,这个种子告诉你,你要下载什么,到哪里下载。bt种子文件有自己的文件格式,下面简单看看bt种子文件的结构。

在开始之前,我们先介绍bencode这种编码格式,因为bt种子文件,包括以后的DHT网络中,都是用这种编码的。网上有很多介绍,这里简单再重复一遍。bencode有4种数据类型:string, integer, list 和 dictionary。

1、string

字符是以这种方式编码的: <字符串长度>:<字符串>。

如hell: 4:hell

2、integer

整数是一这种方式编码的: i<整数>e。

如1999: i1999e

3、list

列表是一这种方式编码的: l[数据1][数据2][数据3][…]e。

如列表[hello, world, 101]: l5:hello5:worldi101ee

4、dictionary

字典是一这种方式编码的: d[key1][value1][key2][value2][…]e,其中key必须是string而且按照字母顺序排序。

如字典{aa:100, bb:bb, cc:200}: d2:aai100e2:bb2:bb2:cci200ee

很多语言都有bencode的实现,Python版本可在pypi里面找到: bencode。

bt种子文件是使用bencode编码的,整个文件就dictionary,包含以下键。

1、info, dictinary, 必选, 表示该bt种子文件的文件信息。

①、文件信息包括文件的公共部分

piece length, integer, 必选, 每一数据块的长度

pieces, string, 必选, 所有数据块的SHA1校验值

publisher, string, 可选, 发布者

publisher.utf-8, string, 可选, 发布者的UTF-8编码

publisher-url, string, 可选, 发布者的URL

publisher-url.utf-8, string, 可选, 发布者的URL的UTF-8编码

a、如果bt种子包含的是单个文件,包含以下内容

name, string, 必选, 推荐的文件名称

name.utf-8, string, 可选, 推荐的文件名称的UTF-8编码

length, int, 必选, 文件的长度单位是字节

b、如果是多文件,则包含以下部分:

name, string, 必选, 推荐的文件夹名称

name.utf-8, string, 可选, 推荐的文件名称的UTF-8编码

files, list, 必选, 文件列表,每个文件列表下面是包括每一个文件的信息,文件信息是个字典。

②、文件字典

length, int, 必选, 文件的长度单位是字节

path, string, 必选, 文件名称,包含文件夹在内

path.utf-8, string, 必选, 文件名称UTF-8表示,包含文件夹在内

filehash,string, 可选, 文件hash。

ed2k, string, 可选, ed2k信息。

2、announce, string, 必选, tracker 服务器的地址

3、announce-list, list, 可选, 可选的tracker服务器地址

4、creation date, interger, 必选, 文件创建时间

5、comment, string, 可选, bt文件注释

6、created by, string, 可选, 文件创建者。

上面列举的可能不是很完整的,但是大体上主要的字段没有重大的错误。

时间: 2024-08-29 23:41:24

bt种子文件文件结构分析(转)的相关文章

bt种子简介与magnet磁力介绍

BT下载相信老司机们都接触过,绝大部分网友也曾经热血贲张地在网络上狂呼"求种".不过有一个现象大家不知道注意过没,这两年尽管大家叫的仍是"求种""发图不发种,XX被人捅",但求到的资源,却往往不是BT种子了,而且一串串的神秘代码,也就是BT磁力链Magnet链接. 为什么BT种子会慢慢被磁链取而代之?它们都可以用于BT下载,除了文件和字符串这表面上的区别,背后的技术上又有何不同? BT种子有何局限? BT下载大家都用得多,不过其背后原理,或许也只

bt种子文件文件结构

  估计80%以上接触互联网的人都知道bt是什么东西,任何一个用bt下载的人都知道这样一个概念,种子.bt种子就是记录了p2p对等网络中tracker, nodes, files等信息,也就是说,这个种子告诉你,你要下载什么,到哪里下载.bt种子文件有自己的文件格式,下面简单看看bt种子文件的结构.  在开始之前,我们先介绍bencode这种编码格式,因为bt种子文件,包括以后的DHT网络中,都是用这种编码的.网上有很多介绍,这里简单再重复一遍.bencode有4种数据类型:string, in

转载,crtmpserver文件夹结构分析

1. 顶层(crtmpserver/) 下的文件夹结构 3rdparty/             : 对lua, xml进行解析的源代码文件夹 sources/              : 项目的核心实现源代码文件夹 builders/              : 各种环境(VS2010, android, linux)下的项目生成 configs/               : 一些预定义的配置文件和示例启动脚本 docs/                  : 项目相关的文档 man

【归纳备忘】收集的一些BT种子搜索网址,这些网址太神奇了。

收集的一些BT种子搜索网址,这些网址太神奇了,不知道怎么实现的,搜电影非常方便. 1.一起搜BT 本人最常用的一个,速度比较快,资源非常多,应用仅有. http://www.yqsobt.com 2.BTDigg 因为这个站对中文资源支持比较好,而且支持种子内部搜索. https://btdigg.org/ 3.磁力搜索-手撕包菜 中文站点,简洁好用. http://bt.shousibaocai.com/ 4.Bt Kitty 中文站点,特色是文件标签,可以提供类似的资源. http://bt

使用C#实现DHT磁力搜索的BT种子后端管理程序+数据库设计(开源)

直接上程序界面,了解整体工作流程是什么样子的,求服务器进行挂机测试,需要固定IP,空间大概需要10G左右(主要是BT种子占用空间过大),最好有SQLSERVER来做为存储数据库,目前采用的是ACCESS数据库做为测试,怕后期数据过百万,对网站进行查询操作很慢. 如果程序运行的时间够长,基本上网络上的种子都会过来,相当于搜片神器了. 开源地址:https://github.com/h31h31/H31DHTMgr 程序下载:H31DHT下载 也提供ASP网站的访问模式: 正在运行中的状态: 本次主

bt 介绍以及 bt 种子的hash值(特征值)计算

bt种子的hansh值计算,最近忽然对bt种子感兴趣了(原因勿问) 1. bt种子(概念) bt 是一个分布式文件分发协议,每个文件下载者在下载的同时向其它下载者不断的上传已经下载的数据,这样保证下载越快,上传越快,从而实现告诉下载 2. bt 如何实现下载同时上传文件 这个需要从文件本身说起,bt文件包含了两部分信息,一部分是Tracker信息,一部分是文件信息,tracker信息主要是记录下载过程中需要的tracker服务器地址和针对tracker服务器的设置,文件信息是根据对目标文件的计算

bt种子爬虫程序和种子解析(大蟒蛇语言编写)

最近亲眼看到快播被大批警察包围,感觉到快播注定要关闭很多东西,很多宅男宅女们又要寂寞了,于是乎,疯狂的研究DHT网络技术 看到网上也有开源的代码,这不,我拿来进行了二次重写,呵呵,上代码: #encoding: utf-8 import socket from hashlib import sha1 from random import randint from struct import unpack, pack from socket import inet_aton, inet_ntoa

迅雷BT种子制作方法

迅雷BT种子制作方法 BT种子制作是用来存放东西位置,类似创建一个服务器,然后把链接做出来,别人就通过制作好BT种子,进行下载到服务器的内容.因此便于在网上传播,同时由于支持多点下载,使其下载文件的速度和性能得到很大的改善.那BT种子怎么制作呢?现在就和大家说一下BT种子制作的方法. 方法如下: 1.下载"BitTorrent"程序,该程序用于制作bt种子文件.下载完成后,安装该程序. 2.运行BitTorrent程序,在打开的程序主界面中点击"文件"→"

linux下SVN忽略文件/文件夹的方法

linux下SVN忽略文件/文件夹的方法 假设想忽略文件temp 1. cd到temp所在的目录下: 2. svn propedit svn:ignore . 注意:请别漏掉最后的点(.表示当前目录),如果报错请看下面 3. 打开的文件就是忽略列表文件了(默认是空的),每一行是一项,在该文件中输入temp,保存退出 4. svn st查看状态,temp的?状态已经消除了 如果在svn propedit svn:ignore .时报错:svn: None of the environment va