問題タブ [bencoding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1054 参照

python - ベンコードをきれいにインポートするには?

私はこれを言うことである bencode ライブラリから bdecode を使用しようとしています:

init のここにあります:

ここに画像の説明を入力

しかし、私のコードでは、エラーのために結果が得られません。実際、インポートでは bdecode が見つかりませんが、その理由がわかりません。これは簡単なコードとエラー出力です:

ここに画像の説明を入力

ベンコードのインストールについては、「pip install bencode」を作成しました

0 投票する
2 に答える
5998 参照

python - ベンコードされた torrent データをデコードする方法

torrent ファイルの内容を bencode でデコードして、torrent ファイルからサイズと名前を抽出しようとしています。

そこpip install bencodeにあるように、トレントファイルの行の1つでテストしました。

これは pip install が python lib に置いたファイルです:

実際のところ、このベンコードを使用して回線をデコードする方法がよくわかりません。

私はすでにdefを試しましたbdecodeが、これは出力です:

だから私はdefを試してみましたdecode_stringdecode_string(blabla, 1)、最初の単語だけをデコードしました:

2、3、4 のような数字は機能せず、次のようなエラーが表示されます。

すべての行をデコードしたいのですが、たとえばこのベンコードを使用してそれを行う方法がわかりません。

0 投票する
1 に答える
482 参照

java - Java でのコード化された文字列の長さ

私はベンコーディングと少し混乱しています。

文字列をベンコードするときの仕様によると、次の形式を使用する必要があります。

長さ:文字列

文字列スパム4:spamになります

私の質問: 4は、コード化された文字列のシンボルの数量、または utf-8 バイトの数量ですか?

たとえば、文字列のgâteauをベンコードするとします。

この文字列の長さとして何を指定する必要がありますか?

7を指定する必要があると思います。最終的な形式は7:gâteauにする必要があります

これは、シンボルâが utf-8 エンコーディングに従って 2 バイトを使用し、この文字列の残りのすべてのシンボルが utf-8 エンコーディングに従って 1 バイトを使用したためです。

また、コード化されたデータを Java String インスタンスに格納することは推奨されていないと聞きました。

つまり、データ ブロックをベンコードするときは、バイト配列として格納する必要があり、エンコーディングの問題を回避するために Java String 値に変換しないでください。

私の仮定は正しいですか?

0 投票する
1 に答える
4663 参照

c# - トレント ファイルのデコード (BEncode)

こんにちは、C# を使用して VS15 でコンソール アプリを作成しています。

どうすれば torrent ファイルをデコードできますか? torrent ファイルの名前、サイズ、日付を取得するには? サーバーから torrent ファイルをダウンロードし、それをデコードして名前、サイズ、日付を確認したいと考えています。これまでのところ、WebCLientを使用してファイルをダウンロードできますが、トレントファイルをデコードする方法を検索して検索しましたが、運がありません.

私はこのライブラリを試しましたが、これを行いました:

しかし、bdictionary が私に与えるものをよく理解していませんか? コンソールにトレント情報を出力したい。

0 投票する
1 に答える
48 参照

bittorrent - KRPC クエリ メッセージ dict 謎のプレフィックス

トレント クライアントの DHT 実装は、メッセージ ディクショナリの前に 4 バイト余分にある KRPC dict メッセージを頻繁に受信します。以下に例を示します。

それに続くのは、ベンコードされた dict、d、内容、そしてe仕様による です。

4バイトに続く辞書には常にyofが含まれているように見えるqので、おそらくクエリです。

0 投票する
0 に答える
71 参照

windows - torcache から torrent をダウンロードするときに cURL が無効なベンコーディングを行う

タイトルがすべてを物語っています。同様の質問がhttps://askubuntu.com/questions/307566/wget-and-curl-somehow-modifying-bencode-file-when-downloading/310507#310507で行われていることは承知していますが、 7zip と Windows 用の Gzip ( http://gnuwin32.sourceforge.net/packages/gzip.htm ) を使用してファイルを解凍しようとしたため、同じソリューションが機能します。どちらも、ファイルの形式が間違っていると主張しています。拡張子の名前を .gz または .zip に変更しても効果はありません。--compressed 属性も役に立ちません。つまり、私の推測では、torcache サイトで何かが変更されたのです。ユーザーエージェントも使用してみましたが、役に立ちませんでした。

関連する問題で、https サイトからダウンロードしようとすると、「curl: (52) Empty reply from server」が表示されると思います。http のみが機能するため、無効なベンコーディングが発生します。ブラウザに URL を入力すると、torrent ファイルが自動的にダウンロードされます。

私が入力しているコマンドは次のとおりです。

curl -O http://torcache.net/torrent/006DDC8C407ACCDAF810BCFF41E77299A373296A.torrent

0 投票する
1 に答える
121 参照

c# - BEncode.net urllist が null です

ウェブシードだけで、トラッカーのない torrent から url-list から値を取得したい。

私はこれを書きました

しかし、urllist が null であるため、これは機能しません。url-list を取得するには?

0 投票する
2 に答える
331 参照

node.js - BitTorrent プロトコルに問題がある

学校のプロジェクト用に単純な BitTorrent トラッカーを作ろうとしています。現在、完全にハッキングされていますが、どこが間違っているのかわかりません。サーバーの応答がどうあるべきかについて誤解があるのではないかと思っています。私はnode.jsとexpressを使用しています。

サーバーは、?info_hash データを含む /GET 要求を問題なく受け取ります。そして、その情報を JSON ファイルに保存できます。サーバーは、ベンコーディングを使用してクライアントに応答することもできます。応答は、間隔とピア リストを含む辞書です。リスト内にはいくつかのディクショナリがあり、各ディクショナリはピアの IP とポートを保持しています。

現在、どのピアも相互に接続されていません。デスクトップとは別のネットワークにラップトップを配置すると、デスクトップが潜在的なピア、正しい IP とポート (私の知る限り) として認識されますが、しばらくするとピア リストから削除されます。各クライアントで大洪水とqBitTorrentを使用しています。

アプリのコードは次のとおりです。

Amazon AWS でホストされているトラッカーに接続でき、qBitTorrent はそれを「動作中」と報告しています。また、GET リクエストが送信され、サーバーの応答が Wireshark 経由で受信されることも確認できます。リクエストには、次のコード化された文字列が含まれており、これで十分だと思います。

www.bittorrent.org によると、応答に必要なのは間隔と、ピアのリストにマッピングされたピア リストだけです。各ピアには ID、IP、およびポートが必要です。

クライアントがリクエストで報告しているポートにポートを切り替え、トレントクライアントがポート転送されていることを確認し、現在動作しているようです. 私はまだこれに取り組み続けるつもりですが。現在、ピアがシード/リーチングを停止したときにピアを削除する方法がありません。