問題タブ [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.
python - ベンコードをきれいにインポートするには?
私はこれを言うことである bencode ライブラリから bdecode を使用しようとしています:
init のここにあります:
しかし、私のコードでは、エラーのために結果が得られません。実際、インポートでは bdecode が見つかりませんが、その理由がわかりません。これは簡単なコードとエラー出力です:
ベンコードのインストールについては、「pip install bencode」を作成しました
python - ベンコードされた torrent データをデコードする方法
torrent ファイルの内容を bencode でデコードして、torrent ファイルからサイズと名前を抽出しようとしています。
そこpip install bencode
にあるように、トレントファイルの行の1つでテストしました。
これは pip install が python lib に置いたファイルです:
実際のところ、このベンコードを使用して回線をデコードする方法がよくわかりません。
私はすでにdefを試しましたbdecode
が、これは出力です:
だから私はdefを試してみましたdecode_string
がdecode_string(blabla, 1)
、最初の単語だけをデコードしました:
2、3、4 のような数字は機能せず、次のようなエラーが表示されます。
すべての行をデコードしたいのですが、たとえばこのベンコードを使用してそれを行う方法がわかりません。
java - Java でのコード化された文字列の長さ
私はベンコーディングと少し混乱しています。
文字列をベンコードするときの仕様によると、次の形式を使用する必要があります。
長さ:文字列
文字列スパムは4:spamになります
私の質問: 4は、コード化された文字列のシンボルの数量、または utf-8 バイトの数量ですか?
たとえば、文字列のgâteauをベンコードするとします。
この文字列の長さとして何を指定する必要がありますか?
7を指定する必要があると思います。最終的な形式は7:gâteauにする必要があります
これは、シンボルâが utf-8 エンコーディングに従って 2 バイトを使用し、この文字列の残りのすべてのシンボルが utf-8 エンコーディングに従って 1 バイトを使用したためです。
また、コード化されたデータを Java String インスタンスに格納することは推奨されていないと聞きました。
つまり、データ ブロックをベンコードするときは、バイト配列として格納する必要があり、エンコーディングの問題を回避するために Java String 値に変換しないでください。
私の仮定は正しいですか?
c# - トレント ファイルのデコード (BEncode)
こんにちは、C# を使用して VS15 でコンソール アプリを作成しています。
どうすれば torrent ファイルをデコードできますか? torrent ファイルの名前、サイズ、日付を取得するには? サーバーから torrent ファイルをダウンロードし、それをデコードして名前、サイズ、日付を確認したいと考えています。これまでのところ、WebCLientを使用してファイルをダウンロードできますが、トレントファイルをデコードする方法を検索して検索しましたが、運がありません.
私はこのライブラリを試しましたが、これを行いました:
しかし、bdictionary が私に与えるものをよく理解していませんか? コンソールにトレント情報を出力したい。
bittorrent - KRPC クエリ メッセージ dict 謎のプレフィックス
トレント クライアントの DHT 実装は、メッセージ ディクショナリの前に 4 バイト余分にある KRPC dict メッセージを頻繁に受信します。以下に例を示します。
それに続くのは、ベンコードされた dict、d
、内容、そしてe
仕様による です。
4バイトに続く辞書には常にy
ofが含まれているように見えるq
ので、おそらくクエリです。
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
c# - BEncode.net urllist が null です
ウェブシードだけで、トラッカーのない torrent から url-list から値を取得したい。
私はこれを書きました
しかし、urllist が null であるため、これは機能しません。url-list を取得するには?
node.js - BitTorrent プロトコルに問題がある
学校のプロジェクト用に単純な BitTorrent トラッカーを作ろうとしています。現在、完全にハッキングされていますが、どこが間違っているのかわかりません。サーバーの応答がどうあるべきかについて誤解があるのではないかと思っています。私はnode.jsとexpressを使用しています。
サーバーは、?info_hash データを含む /GET 要求を問題なく受け取ります。そして、その情報を JSON ファイルに保存できます。サーバーは、ベンコーディングを使用してクライアントに応答することもできます。応答は、間隔とピア リストを含む辞書です。リスト内にはいくつかのディクショナリがあり、各ディクショナリはピアの IP とポートを保持しています。
現在、どのピアも相互に接続されていません。デスクトップとは別のネットワークにラップトップを配置すると、デスクトップが潜在的なピア、正しい IP とポート (私の知る限り) として認識されますが、しばらくするとピア リストから削除されます。各クライアントで大洪水とqBitTorrentを使用しています。
アプリのコードは次のとおりです。
Amazon AWS でホストされているトラッカーに接続でき、qBitTorrent はそれを「動作中」と報告しています。また、GET リクエストが送信され、サーバーの応答が Wireshark 経由で受信されることも確認できます。リクエストには、次のコード化された文字列が含まれており、これで十分だと思います。
www.bittorrent.org によると、応答に必要なのは間隔と、ピアのリストにマッピングされたピア リストだけです。各ピアには ID、IP、およびポートが必要です。
クライアントがリクエストで報告しているポートにポートを切り替え、トレントクライアントがポート転送されていることを確認し、現在動作しているようです. 私はまだこれに取り組み続けるつもりですが。現在、ピアがシード/リーチングを停止したときにピアを削除する方法がありません。