Torrent Tracker 响应似乎格式不正确
Posted
技术标签:
【中文标题】Torrent Tracker 响应似乎格式不正确【英文标题】:Torrent Tracker response seems not well formated 【发布时间】:2016-10-14 08:13:20 【问题描述】:今天我试图理解(也许是为了实现)Bittorrent 协议。
我已经非常了解如何“解密” .torrent 文件的内容,我向 Tracker 发送了一个请求,其中包含提取的数据。
但是,响应不是预期的:The wiki about the Bittorent Tracker Protocol 表示响应必须包含,在“同行”List of dictionaries corresponding to peers.
我正在使用 C# 程序读取响应,并且我在该字段中唯一的内容是包含 50-0B-3F-3F-00-00-50-0B-3F-3F-3F-3F
的字节数组 (byte[]),如果我将其转换为字符串
BitConverter.ToString((byte[])peers)
Tracker的原始响应是:
d8:completei0e10:downloadedi2e10:incompletei2e8:intervali1970e12:min intervali985e5:peers12:P?? P????e
我对它的 HTTP 请求是:
http://bt1.archive.org:6969/announce?info_hash=%ac%c3%b2%e43%d7%c7GZ%bbYA%b5h%1c%b7%a1%ea%26%e2&peer_id=ABCDEFGHIJKLMNOPQRST&ip=xxx.xxx.xxx.xxx&port=6881&downloaded=0&left=970
所以我不明白,怎么了?
【问题讨论】:
你真的读过那个wiki的第一行吗?跟踪器可以发送两种响应中的一种,作为BEncoded 字典 我的错,我错过了这部分......所以,无论如何,如果我能很好地理解响应,Tracker 会向我发送 2 个 IP 吗? 50-0B-3F-3F-00-00 和 50-0B-3F-3F-3F-3F -> 80.11.63.63:0000 和 80.11.63.63:6363 ? 【参考方案1】:跟踪器响应采用compact=1
-form,现在或多或少是强制性的。
在此指定:BEP23 - Tracker Returns Compact Peer Lists
【讨论】:
以上是关于Torrent Tracker 响应似乎格式不正确的主要内容,如果未能解决你的问题,请参考以下文章
解码 Torrent 跟踪器抓取的 Torrent Hash?