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

これはハッシュを取得せず、代わりにオブジェクトを取得します<libtorrent.big_number object at ...... >

私は何をすべきか?

4

3 に答える 3

8

既存の回答は、必要なものすべてを提供します...しかし、それを明示するためのコードを次に示します。

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)

EDIT : 実際には、それは間違っています - 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)
于 2012-10-27T17:57:57.833 に答える
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

バイトを反復処理するだけで、ハッシュが得られます。

于 2012-08-21T16:27:07.307 に答える
-2

電話するだけstr(info.info_hash())です。

編集:実際にstrは正しくありません。しかし、16 進文字列を書き出す正しい方法は何でしょうか?

于 2012-10-27T13:18:34.097 に答える