7

私はビットトレント仕様を読み、トレントトラッカーからシード/ピア/ダウンロードされたデータを(Pythonを使用して)取得する方法を見つけようとして、いくつかの検索を行いました。トレントから情報ハッシュを問題なく計算できます。これは、さまざまな動作中のトレントアプリケーションによって提供される情報ハッシュと一致します。

ただし、トラッカーから情報を取得しようとすると、URLを入力した形式に応じて、タイムアウト(トラッカーが機能している)または空のデータを取得します。

http://tracker.openbittorrent.com/scrape?info_hash=a8c482902b1c735de462479721b011dc7b3d3558-タイムアウト

これは20文字の長さである必要があると言われたので、部分文字列を取りましたが、これは空のデータを提供します。

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

スクレイプURLのインフォハッシュをエンコードまたは作成する方法について誤解していると思いますが、私の人生のどこにいるのかわかりません。

4

2 に答える 2

6

info_hash の 16 進文字表現を渡しています。バイナリ表現である必要があります。印刷できないバイトを URL に入れるには、URL エンコードを使用します。

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

(また、info_hash パラメーターでのエンコードを回避しようとし_ます...正しくないというわけではありませんが、速度を重視して作成された一部のトラッカーが台無しになると予想されるようなものです。)

于 2009-11-05T13:19:41.093 に答える
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

于 2014-05-02T14:45:01.167 に答える