web-dev-qa-db-ja.com

トレント内およびトレント間で重複ファイルを検出するにはどうすればよいですか?

大量のトレントをダウンロードしている場合、すでにダウンロードされているファイルを検出してダウンロードを停止する方法またはクライアントはありますか?

編集:コメントから明確にします。はい、これは、異なるトレント間で重複ファイルを見つけ、それらをダウンロードしないようにすることを意味します。

一部のクライアントでは、トレント内のどのファイルをダウンロードするかを選択できます。ダウンロードする前に、トレント内の個々のファイルのチェックサムを取得することは可能ですか?もしそうなら、私はスクリプトか何かを作ることができました。

1
fullmooninu

.torrentファイルで使用可能なデータから、トレント内のファイルが別のトレントにも存在するかどうかを判断することはできません。標準のBitTorrentプロトコルには重複排除のサポートはありません。

トレントが作成されると、その中のすべてのファイルが連結されてから、細かく分割されます。

example:
Files  |---#1|#2|---#3|-----------------------#4|#5|------#6|-----#7|-------#8|
Pieces |--0|--1|--2|--3|--4|--5|--6|--7|--8|--9|-10|-11|-12|-13|-14|-15|-16|17|
  • 最後のピースを除いて、すべてのピースの長さは同じです。
  • ファイルには1つ以上の部分があります。
  • ピースには、複数のファイル(の一部)が含まれる場合があります。
  • 内部ファイルとピースの境界が揃うことは非常にまれです(パディングファイルが使用されている場合を除く)。
  • マルチファイルトレント内のファイルには、ほとんどの場合、別のファイルと共有されている部分があります。

問題は、ピースハッシュからファイルハッシュを作成できないことです。

(@jdwolfファイル#1とファイル#3が同一であっても、それらのピースハッシュはすべて異なります。)

オプションでファイルハッシュを追加できるトレントクリエータープログラムがいくつかありますが、どこでも使用されていません。

2
Encombe