如何计算torrent的scrape URL

时间:2009-11-05 12:21:12

标签: python bittorrent

我已经阅读了Bit-torrent规范并进行了大量搜索,试图找出如何从torrent跟踪器(使用Python)获取种子/对等/下载数据。我可以从Torrent计算信息哈希没问题,这与各种工作的torrent应用程序给出的信息哈希相匹配。

但是,当我尝试从跟踪器获取信息时,我要么超时(跟踪器正在工作),要么获取空数据,具体取决于我将URL放入的形式:

http://tracker.openbittorrent.com/scrape?info_hash=a8c482902b1c735de462479721b011dc7b3d3558 - 超时

我被告知这应该是20个字符长,所以需要一个子字符串,但这会给出空数据。

http://tracker.openbittorrent.com/scrape?info_hash=a8c482902b1c735de462 - d5:filesdee

我认为我误解了我应该如何对scrape URL进行编码或制作信息,但不能在我的生活中看到哪里。

2 个答案:

答案 0 :(得分:6)

您正在传递info_hash的十六进制字符表示形式。它应该是二进制表示。要将不可打印的字节放入URL,请使用URL编码:

/scrape?info_hash=%A8%C4%82%90%2B%1Cs%5D%E4bG%97%21%B0%11%DC%7B%3D5X

(我也试着避免在info_hash参数中对_进行编码...并不是说它不正确,但是我希望有一些写入速度跟踪器的东西。搞砸了。)

答案 1 :(得分:3)

我的解决方案:

import binascii

binary_info_hash = binascii.unhexlify('79b193385de5b967175ca86073670fce0e45a324')
print binary_info_hash

结果:

y%B1%938%5D%E5%B9g%17%5C%A8%60sg%0F%CE%0EE%A3%24

更多信息:binascii.unhexlify