如何使用libtorrent for python来获取info_hash

时间:2012-08-21 16:00:40

标签: python libtorrent

from libtorrent as lt
info = lt.torrent_info(open('example.torrent','rb').read())
info.info_hash()

这不会得到哈希值,而是得到对象<libtorrent.big_number object at ...... >

我该怎么办?

3 个答案:

答案 0 :(得分:7)

现有的答案为您提供了所需的一切......但是这里有一些代码可以使它明确:

import libtorrent as lt
info = lt.torrent_info(open('example.torrent','rb').read())
info_hash = info.info_hash()
hexadecimal = str(info_hash)
integer = int(hexadecimal, 16)

编辑:实际上,这是错误的 - torrent_info()应该传递torrent文件的长度及其内容。修订(工作)版本:

import libtorrent as lt
torrent = open('example.torrent','rb').read()
info = lt.torrent_info(torrent, len(torrent))
info_hash = info.info_hash()
hexadecimal = str(info_hash)
integer = int(hexadecimal, 16)

答案 1 :(得分:0)

根据http://www.rasterbar.com/products/libtorrent/manual.html#torrent-info

info_hash() returns the 20-bytes sha1-hash for the info-section of the torrent file. 
For more information on the sha1_hash, see the [big_number] class.

所以http://www.rasterbar.com/products/libtorrent/manual.html#big-number

只需迭代字节,就可以得到哈希值。

答案 2 :(得分:-2)

只需致电str(info.info_hash())

编辑:实际上str不正确。但是写出十六进制字符串的正确方法是什么?