BitTorrent跟踪器在infohash'00'时刮回复

问题描述:

我的问题是,当infohash包含'00',刮擦请求与%00,所以会在http回复中有'\ 0'。 我发现了一些在infohash中有零字节的种子,我想知道跟踪器应该如何回复那些种子的Scrape请求。我的意思是''0'通常会工作?我测试了山洪与torrentspy和它总是说:BitTorrent跟踪器在infohash'00'时刮回复

“激流不跟踪发现,可能是烂”

我写了一个基本的跟踪器来测试和验证的完整刮答复是写入套接字但torrentspy仍然具有相同的输出。当我看到在网页浏览器中的scrape回复时,它结束于'\ 0'有人能够为黑暗带来光明吗?

这不是完全清楚你的问题是什么,但我会尽力填补一些东西在。

“\ 0”并不比任何其他的非打印字符不同。所有非URL安全字符都必须在向HTTP跟踪器的GET请求中以%xx格式转义。一些追踪者有错误,例如他们假设不需要转义的字符不会被转义(即他们可能会将转义信息的版本存储为其内部表示)。一些网络服务器甚至可能认为`(单引号)总是被转义(允许SQL注入攻击)。所有特殊字符必须被转义,尤其是&%(显然)。

反应比较简单。由于来自追踪器的响应被编码,因此所有信息散列都以二进制形式发送。即根本不存在编码。当你对它进行解码时,你可能希望对信息哈希进行十六进制编码,因为这是一种更加用户友好的表示形式,也是打印它们的常规方式(在网站,磁链接,应用程序上)。

所以,对你的问题。当你说“在infohash中有零字节的种子”时,我假设你的意思是他们的信息散列有一个更多的字节,它是0.这是完全正常的,并不罕见。它通常会工作吗?是的,您只需确保将其作为%00转义即可,就像您需要处理%01一样。

您的洪流可能已经死亡,即追踪器停止追踪它。这就是错误信息的含义。它可能与info-hash中的零字节没有任何关系。

+0

我的问题是如果tracker scrape的回复可以被torrent客户端和torrentspy解析,如果回复中有\ 0。尽管TorrentSpy仍然托管在追踪器上,但TorrentSpy总是说它不能被发现。我用一个自己编程的基本跟踪器检查了这一点,torrentspy也说,即使答复是有效的,也没有发现洪流。所以我想知道infohash中的00字节是否可以工作......这都是关于跟踪器的简要回复,而不是请求。 – Thorsten 2011-03-31 12:50:32