我入坑 PT 也快一年了,之前偶然读到了一篇博客,讲的是 PT 机制的几个有意思的漏洞。正好我对 BT 也不是很了解,就一路从 bencode 学到 tracker 协议,现在也算是对这块比较熟悉了。
PT 只靠客户端汇报的 downloaded
和 uploaded
来统计数据,而这些字段原本不是设计来限制 ratio 的,所以自然就留下了很多可以做文章的点。我就跟着博客作者的思路,实现了一个 tracker “代理”,当 BT 客户端向代理汇报的时候代理就会检查缓存里是否有这个种子的 peer 列表,如果有并且没过期就直接返回,否则向真实 tracker 发起一个“开始下载”的请求,得到 peer 列表并存储。这样就可以实现不计入下载量的效果。
而且可能还有一个额外的好处,就是如果两个人下载同一个种子,但是通过不同的 PT 站,那么 peer 列表会被整合,让每个人都能连接到更多的 peer 。
因为我不太会前端,所以网页做得比较简单,就一个按钮,把种子上传之后会自动修改并下载修改后的种子,然后添加到 BT 客户端就可以下载了。如果感兴趣可以试一试。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.