【发布时间】:2012-02-29 21:10:52
【问题描述】:
我的 torrent 服务器几乎用完了。我现在要做的就是找出 .torrent 文件如何填充 info 键的“pieces”键。
我目前在我的 torrent 文件中有此信息,以 utf-8 格式编码。您在最后看到的哈希是文件 TITLE 的一个 has,甚至不接近我在冒号前指定的位长度。片段的位长度使用(文件大小/片段长度)* 20 计算,并使用 round() 进行四舍五入:
d8:announce64:http://www.valevarkasystems.com:40/torrents/tracker/announce.php
8:encoding5:UTF-84:infod6:lengthi71711042e4:name25:Executive Meeting480p.flv
12:piece lengthi128000e6:pieces11205:òOìcØq¬rkÑzÎõyjZee
如何正确计算末尾“pieces”键的值?
每次我尝试在传输中打开它时,它都会被读取为已损坏。
我是否使用 fopen(),抓取一个“片段长度”的文件,并为每个片段创建一个 sha1 哈希,直到我到达文件末尾?
谢谢,
【问题讨论】:
-
@Marc Brown 你看过 BEncode/BDecode php 源码吗,也许这会有所帮助,如果你愿意,我可以发布这两个类
-
@MarcB 我发现/被提及该页面很多次,以至于我忘记了我打开了三个标签。我知道他们希望我对每个文件片段进行哈希处理,即 file_get_contents() 其中 maxlen 是我的片段长度的大小?我想这就是我所要做的,但我不确定。
-
@LawrenceCherone 我已经看过源代码,我相信我必须做一个 while 循环,在其中我“sha1”文件的每个部分,即“片段长度”的长度。
-
我实际上正在取得进展。在我可以将我的文件准备为纯文本之前。现在,在我使用 file_get_contents 创建了一个“sha1”文件部分的 while 循环后,我无法再使用常规文本编辑器打开 torrent 文件(实际上是一件好事),但我仍然有一个损坏的文件。 。 有小费吗?我错过了什么吗?我需要信息哈希吗?
标签: php hash bittorrent