12

http://foobar.com/foo.torrentのような URL を取得し、それが本当に torrent であり、html ページやその他の面白いものではないかどうかを確認するための最良の方法は何ですか。提案?ありがとうございました :)

4

7 に答える 7

11

ダウンロードせずにリソースのタイプを確認するには、HEAD リクエストを使用します。

WebRequest request= WebRequest.Create("http://foobar.com/foo.torrent");
request.Method= "HEAD";
WebResponse response= request.GetResponse();
if (response.Headers.Get("Content-Type")=="application/x-bittorrent") {
    ...

ただし、application/x-bittorrent一部のサーバーではタイプが設定されていない可能性があるため、運が悪い場合application/octet-streamでも、代わりに取得される可能性がありtext/plainます。これを説明する必要がある場合は、通常の GET リクエストでファイルをフェッチし、デコードできるかどうかを確認するだけです。

BitTorrent ファイル形式は、「bencode」と呼ばれる形式に基づいています。これを処理すると主張する .NET ライブラリを次に示します。有効な bencode であるファイルはすべて torrent ファイルであると推測できますが、確認したい場合は、デコード先のマッピングを見て、infoおよびannounceプロパティを確認してください。

于 2010-04-28T18:38:00.403 に答える
4

本当に torrent ファイルかどうかを確認する唯一の方法は、ダウンロードして torrent ファイルかどうかを確認することです

于 2010-04-28T18:23:07.150 に答える
3

おそらく、ダウンロードして検証するか、コンテンツの種類を確認するのが最適ですapplication/x-bittorrent

于 2010-04-28T18:22:33.423 に答える
1

bobince が提供した良い回答に加えて、monotorrentオープン ソースの c# 実装も参照できます。彼らは .torrent ファイル全体をダウンロードし、その後ベンコードを解析します (参照: http://anonsvn.mono-project.com/viewvc/trunk/bitsharp/src/MonoTorrent/MonoTorrent.Common/Torrent.cs行 611ff) 。

于 2010-04-28T18:53:50.730 に答える
1

MonoTorrentライブラリを使用します。具体的には、静的メソッドを使用できます

Torrent.TryLoad(Uri url, string location, out Torrent torrent)

urlパラメータが有効な torrent ファイルを指しているかどうかを示すブール値を返します。

于 2010-04-28T18:55:35.207 に答える
1

torrent ファイルの仕様を読み、C# アプリを作成して URL のコンテンツをダウンロードし、仕様のルールを満たしているかどうかを確認します。

于 2010-04-28T18:22:14.453 に答える
0

いくつかの c++ を学習したい場合は、P/Invoke を使用してlibtorrentライブラリへの外部呼び出しを行うことができます。ファイルを検証する方法があると確信しています。

于 2010-04-28T18:31:12.220 に答える