Dukat Дело в том, что даже имея торрент-файл мы не сможем вытащить из него списки - дайджест SHA-1 просчитывается по всем файлам включая и его самого. Поэтому вытащить отдельно взятую строку просто не откуда. [more=Пример]2013_01_17Info hash: 5ad5f5c580f71b94ea84df8f0ddc67de62ee2b4a
Magnet link: magnet:?xt=urn:btih:
Torrent file dump:
{
announce:
announce-list: [
[
http:// ]
[
http://retracker.local/announce ]
]
comment:
created by: uTorrent/1810
creation date: 1231941023
encoding: UTF-8
info: {
files: [
{
length: 233400120
path: [
01 - Hello.avi
]
}
{
length: 220220976
path: [
02 - Family.avi
]
}
{
length: 225697852
path: [
03 - Friends.avi
]
}
{
length: 226337846
path: [
04 - Happy Home.avi
]
}
{
length: 226634302
path: [
05 - Animal Friends.avi
]
}
{
length: 225152392
path: [
06 - It's delicious.avi
]
}
{
length: 220348060
path: [
07 - Happy Birthday.avi
]
}
{
length: 233434448
path: [
08 - Tick Tock Time.avi
]
}
{
length: 225854468
path: [
09 - Night And Day.avi
]
}
{
length: 222385110
path: [
10 - Let's Play.avi
]
}
{
length: 210693458
path: [
11 - Numbers.avi
]
}
{
length: 218244616
path: [
12 - At home.avi
]
}
{
length: 222870932
path: [
13 - My Body.avi
]
}
{
length: 225617228
path: [
14 - Party Time.avi
]
}
{
length: 222803410
path: [
15 - Cooking.avi
]
}
{
length: 223994710
path: [
16 - The Forest.avi
]
}
{
length: 222701448
path: [
17 - The Sea.avi
]
}
{
length: 225924686
path: [
18 - Let's Travel.avi
]
}
{
length: 220784976
path: [
19 - Colors.avi
]
}
{
length: 230067038
path: [
20 - Wild Animals.avi
]
}
{
length: 226480968
path: [
21 - Funny Faces.avi
]
}
{
length: 234239636
path: [
22 - Country Life.avi
]
}
{
length: 233018144
path: [
23 - Changing Seasons.avi
]
}
{
length: 225221666
path: [
24 - Mountains.avi
]
}
{
length: 222865928
path: [
25 - Music.avi
]
}
{
length: 233454724
path: [
26 - Fairy Land.avi
]
}
{
length: 218636140
path: [
27 - The City.avi
]
}
{
length: 218544678
path: [
28 - Wild West.avi
]
}
{
length: 218438470
path: [
29 - Everyday life.avi
]
}
{
length: 218624320
path: [
30 - Big and Small.avi
]
}
{
length: 218615120
path: [
31 - Faraway Places.avi
]
}
{
length: 218470282
path: [
32 - Vilains.avi
]
}
]
name:
piece length: 4194304
pieces: [binary data (34200 bytes)]
private: 1
}
publisher:
publisher-url:
}[/more] из которого удалены только личные данные. Это дамп торрент-файла с 32-я файлами в раздаче. Вытащить информацию по отдельно взятому файлу даже имея его на руках нельзя - алгоритм не позволит. Именно потому я и сказал что решение со сверкой готового хэш-листа реализуется без проблем.
Вот Вам пример его применения - порты FreeBSD UNIX. В них есть специальный файл
distinfo содержащий информацию о пакете исходников применяемом при установке исполняемого пакеджа на целевой машине.
Например:
Цитата: SHA256 (gnome2/accerciser-1.12.1.tar.bz2) = addbc940a05c0dacb6131c8e0b136c14eab73c57bfe50c110cef4d3723d07807
SIZE (gnome2/accerciser-1.12.1.tar.bz2) = 1554921
и система скачивая accerciser-1.12.1.tar.bz2 тут же его проверит по размеру и на отсутствие повреждений по дайджесту SHA256. Что-то не совпало - скачаем исходники с одного из зеркал и соберём бинарник из них благо компиляторы С/С++ штатный элемент всех ОС семейства UNIX уже с 1068 - 1970 года - они написаны на С и только загрузчик и небольшая часть кода ядра пишется на ассемблере.