`

BT种子文件 bencoding编码

 
阅读更多

BT种子文件使用了一种叫bencoding的编码方法来保存数据。

bencoding有四种类型的数据:srings(字符串)integers(整数)lists(列表)dictionaries(字典)
编码规则如下:
(1)strings(
字符串)编码为:<字符串长度><字符串>
例如: 4:test 表示为字符串"test"
 4:
例子 表示为字符串例子
字符串长度单位为字节
没开始或结束标记

(2)integers(整数)编码为:i<整数>e
开始标记i,结束标记为e
例如: i1234e 表示为整数1234
 i-1234e 
表示为整数-1234
整数没有大小限制
 i0e 
表示为整数0
 i-0e 
为非法
0开头的为非法如: i01234e 为非法

(3)lists(列表)编码为:l<bencoding编码类型>e
开始标记为l,结束标记为e
列表里可以包含任何bencoding编码类型,包括整数,字符串,列表,字典。
例如: l4:test5:abcdee 表示为二个字符串["test","abcde"]

(4)dictionaries(字典)编码为d<bencoding字符串><bencoding编码类型>e
开始标记为d,结束标记为e
关键字必须为bencoding字符串
值可以为任何bencoding编码类型
例如: d3:agei20ee 表示为{"age"=20}
 d4:path3:C:"8:filename8:test.txte

 表示为{"path"="C:"","filename"="test.txt"}

(5)具体文件结构如下:
全部内容必须都为bencoding编码类型。
整个文件为一个字典结构,包含如下关键字
announce:tracker
服务器的URL(字符串)
announce-list(
可选):备用tracker服务器列表(列表)
creation date(
可选):种子创建的时间,Unix标准时间格式,从1970 11 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:
同单文件结构中相同 
(6)
实例:
用记事本打开一个.torrent可以看来类似如下内容
d8:announce35:http://www.manfen.net:7802/announce13:creation datei1076675108e4:infod6:lengthi17799e4:name62:MICROSOFT.WINDOWS.2000.AND.NT4.SOURCE.CODE-SCENELEADER.torrent12:piece lengthi32768e6:pieces20:?W 
??緕排Tee

很容易看出
announce
http://www.manfen.net:7802/announce
creation date
1076675108(02/13/04 20:25:08)
文件名=MICROSOFT.WINDOWS.2000.AND.NT4.SOURCE.CODE-SCENELEADER.torrent
文件大小=17799字节
文件块大小=32768字节

分享到:
评论

相关推荐

    BEncoding Editer

    "BEncoding Editer" 是一款专门针对BEncoding编码的文件查看器,它使得用户能够轻松地查看和理解BT种子文件(.torrent)的内容。BT种子文件是BitTorrent网络中用于分发大文件的关键组件,其中包含了下载所需的所有元...

    Java解析bt torrent种子文件的工具类代码分享

    torrent文件是用Bencoding编码的,这是一种简单的键值对编码方式,类似于JSON。Bencoding主要包含以下几部分: 1. **info** 字段:包含了关于文件或文件集的基本信息,如文件名、文件大小、文件SHA1哈希等。 2. **...

    BT协议库libtorrent的种子文件解析方法探究

    - **`bdecode_node`**:用于解析Bencoding编码的数据结构,是libtorrent库中解析种子文件的基础组件。 ##### 4.2 解析种子文件的实际函数 - **`load_torrent_info`**:这个函数负责加载并解析.torrent文件,返回一...

    BT下载文件C++实例

    在描述中提到的“使用BT种子下载实例,经过编译,可以使用”,这表明存在一个已经编译完成的C++程序,它可以处理BT种子文件,启动并管理BT下载过程。这个程序可能包括了BT协议的关键组件,如对.torrent文件的解析、...

    PHP实例开发源码-bt种子程序源码 php版.zip

    PHP源码将教我们如何创建这样的文件,这涉及到理解Bencoding编码规则,它是用来表示torrent文件中数据的一种方式。 2. **追踪器(Tracker)**:在BT网络中,追踪器服务器负责协调客户端之间的通信,提供下载和上传...

    BT通信协议分析

    种子文件即**.Torrent文件**,采用**Bencoding编码**,包含了下载文件的关键信息,如Tracker服务器的URL、备用Tracker服务器列表、创建时间等。此外,种子文件还包含了文件的主要信息,支持单文件结构和多文件结构。...

    Python实现解析Bit Torrent种子文件内容的方法

    7. **在线工具提示**:脚本的末尾提到,作者还推荐了一个在线工具,用于将BT种子文件转换为磁力链接,这在某些情况下可能会很有用,例如,当用户需要在没有种子文件的情况下共享资源时。 总的来说,这段代码提供了...

    BT下载客户端(C#)

    4. **B编码(Bencoding)**:种子文件通常采用B编码存储元数据,这是一种简单的二进制编码方式,用于表示字符串、整数、列表和字典等数据结构。C#客户端需要实现B编码的解析和生成。 5. **TCP连接与UDP Tracker**:...

    种子文件解析代码

    种子是B编码的,该python代码解析了B编码的种子,将里面的tracker等信息保存下来

    BT工作原理.pdf

    BT种子文件(.torrent)及Tracker的回应信息使用了一种名为Bencoding的编码方法来存储数据。Bencoding支持以下几种类型的数据: - **Bytestrings**(字符串):用于表示字符串数据。 - **Integers**(整数):用于...

    全套BTC++源代码GGBT

    2. **Metainfo文件解析**:每个BT种子都包含一个元信息文件,用于描述要共享的内容,源代码会解析这些文件以获取必要的信息。 3. **Bencoding编码**:BT协议使用Bencoding编码来表示数据,包括文件信息、块信息等,...

    BT下载程序源代码BT下载程序源代码BT下载程序源代码

    4. **B编码(Bencoding)解析**:BT协议中,文件信息是以B编码形式存储,需要解码才能读取。 5. **磁力链接支持**:BT下载可以使用磁力链接,这是一种不依赖于Tracker服务器的链接方式,通过文件的哈希值识别。 ...

    bt客户端源代码

    3. **Bencoding**:这是一种用于编码.torrent 文件中数据的简单格式,包括字典、列表、整数和字符串。理解Bencoding是解析.torrent 文件的关键。 4. **哈希检查与校验**:每个文件块都有一个独特的哈希值,客户端...

    实现bt下载的delphi代码

    这通常涉及解析Bencoding格式,一种特殊的字符串编码方式。 5. **建立连接**:找到其他peers后,使用TCP建立连接,并进行Handshake,交换各自的Info Hash和Peer ID。 6. **下载Pieces**:根据库提供的API,请求并...

    SimpleBT delphi 源码

    6. **文件I/O操作**:了解如何在Delphi中进行文件读写,特别是在处理BT种子文件和下载的文件片块时。 通过分析和研究SimpleBT的源码,开发者不仅可以掌握BT客户端的实现细节,还可以加深对Delphi编程的理解,同时...

    TorrentParser-CLI

    1. **Bencoding解析**:BT种子文件使用Bencoding编码存储元数据。C#程序需要解析这种编码格式,将字符串、整数、列表和字典转换为可读的数据结构。Bencoding的解析通常涉及到字符串处理、数字转换和递归数据结构的...

    BitTorrent下载技术研究.pdf

    Torrent文件可以被编码,如使用Bencoding进行编码。 BitTorrent下载技术的应用非常广泛,如下载大型软件、DVD视频等文件。BitTorrent下载技术也可以应用于内容分发和下载领域,提供高宽带、可扩展的内容下载服务。

    BitTerent 4.0.1 源代码

    2. **Bencoding编码**:Torrent文件采用Bencoding进行编码,这是一种简单且易于解析的ASCII编码格式。源代码中会有解码Bencoded数据的相关实现。 3. **Tracker协议**:Tracker服务器与客户端之间的通信遵循特定的...

    ABtorrents_Uploader:ABtorrents上传器

    通过了解这个工具,我们可以深入探讨Python编程、文件处理以及BT种子的相关知识。 首先,我们要明白Python是这个项目的基础。Python是一种高级编程语言,以其简洁明了的语法和强大的库支持而闻名。在ABtorrents_...

Global site tag (gtag.js) - Google Analytics