torrentkitty磁力搜索引擎使用 torrent是什么格式的文件


閱讀目錄

    Torrent簡介Torrent結構Torrent文件編碼Torrent文件解析Torrent文件與Magnet具體實現Reference
回到頂部
Torrent簡介 BitTorrent協議的種子文件(英語:Torrent file)可以保存一組文件的元數據 。這種格式的文件被BitTorrent協議所定義 。擴展名一般為“.torrent” 。
.torrent種子文件本質上是文本文件 , 包含Tracker信息和文件信息兩部分 。Tracker信息主要是BT下載中需要用到的Tracker服務器的地址和針對Tracker服務器的設置 , 文件信息是根據對目標文件的計算生成的 , 計算結果根據BitTorrent協議內的Bencode規則進行編碼 。它的主要原理是需要把提供下載的文件虛擬分成大小相等的塊 , 塊大小必須為2k的整數次方(由于是虛擬分塊 , 硬盤上并不產生各個塊文件) , 并把每個塊的索引信息和Hash驗證碼寫入種子文件中;所以 , 種子文件就是被下載文件的“索引” 。
回到頂部
Torrent結構 Torrent文件內容都以Bencoding編碼類型進行存儲 , 整體上是一個字典結構 , 見下:
Torrent總體結構 【torrentkitty磁力搜索引擎使用 torrent是什么格式的文件】鍵名稱數據類型可選項鍵值含義
announcestringrequiredTracker的Urlinfodictionaryrequired該條映射到一個字典 , 該字典的鍵將取決于共享的一個或多個文件announce-listarray[]optional備用Tracker的Url , 以列表形式存在commentstringoptional備注created bystringoptional創建人或創建程序的信息
Torrent單文件Info結構Torrent多文件Info結構files字典結構:
Torrent實際結構預覽 以JSON序列化整個字典后 , 單文件和多文件的結構大致如下 , 注意:JSON內容省略了pieces摘要大部分內容 , 僅展示了開頭部分 , 另外由于本人序列化工具設置所致 , 所有的整型都會序列化成字符串類型 。
單文件結構多文件結構{"creation date": "1604347014","comment": "Torrent downloaded from https://YTS.MX","announce-list": [["udp://tracker.coppersurfer.tk:6969/announce"],["udp://9.rarbg.com:2710/announce"],["udp://p4p.arenabg.com:1337"],["udp://tracker.internetwarriors.net:1337"],["udp://tracker.opentrackr.org:1337/announce"]],"created by": "YTS.AG","announce": "udp://tracker.coppersurfer.tk:6969/announce","info": {"pieces": "?im??u000b*???... ...","name": "Love And Mo

    猜你喜歡