Просмотр полной версии : стуктура .torrent файлов
не знал куда запостить, поетому запостил сюда, так-как в будущем єсть идеи написать perl-анализатор..;)
подскажите, где найти инфо про структуру .torrent файла..
искал-не нашол, плохо искал)
astrologer
17.11.2008, 23:01
http://wiki.theory.org/BitTorrentSpecification
astrologer +1
ТС - на русском можеш неискать. нету. читай что есть. структура имхо очень хитровые...ая. особенно вложеность параметров один в другой. а в остальном всё просто)
уже я немножко накатал:
system('cls');
opendir(TEMPDIR,$dir) or die("[-] Error ($!)..");
@FILES=grep(/\.torrent$/i, readdir TEMPDIR);
closedir(TEMPDIR);
for ($i=0;$i<@FILES;) {
$res='';
open(DESC, @FILES[$i]);
while (<DESC>) {$res.= $_;}
close(DESC);
$res =~ /:name\d{0,4}:(.*)12:piece/;
if (-s $1) {print '[+] ';} else {print '[-] ';}
print $1."\n";
$i++;
}
находит все *.torrent файли в текущей папке и видирает названия файлов и проверяет их существования..
уже нашол инфо про строки:
СТРОКИ
<длина строки>:<строка>. Пример: 5:xakep
и сделал ф-цию для чтения строк:
sub read_str
{
if ($_[0] =~ /:$_[1](\d{0,4}):/)
{return substr($_[0], index($_[0],$_[1])+length($_[1])+length($1)+1, $1)}
else {return '';}
}
пример:
print read_str($res,'announce');
может у кого-то єсть наброски кода?)
и сделал ф-цию для чтения строк
эээ? а чо она делает?
чтоб читать byte strings из торрента
byte strings
Byte strings are encoded as follows: <string length encoded in base ten ASCII>:<string data>
Note that there is no constant beginning delimiter, and no ending delimiter.
Example: 4:spam represents the string "spam"
astrologer
18.11.2008, 00:47
может у кого-то єсть наброски кода?) Их должно быть немало в сети. Для PHP что-то (http://sourceforge.net/projects/torrentflux/) есть.
torrentflux - єто не парсер походу..
4 МБ для парсера замного)
меня интересует только как достать данние..
только что понял что там супер заебистая система, параметри в параметрах под параметрами)..
torrentflux - єто не парсер походу..
4 МБ для парсера замного)
меня интересует только как достать данние..
только что понял что там супер заебистая система, параметри в параметрах под параметрами)..
torrentflux - это не чистый парсер, это полноценный торрент-клиент.. но ему же как то надо парсить .torrent-файлы... собственно можешь выдернуть парсер оттуда и переделать его на перле
torrentflux - это не чистый парсер, это полноценный торрент-клиент.. но ему же как то надо парсить .torrent-файлы... собственно можешь выдернуть парсер оттуда и переделать его на перле
так и сделаю
Глянь исходник TBDev, там есть как раз функция для чтения структуры *.torrent
+ [DICT] [root] (24609)
- [STRING] [announce] (39): http://tracker/announce.php
- [STRING] [comment] (35): Торрент создан для 'Tracker'
- [STRING] [created by] (14): User1
- [INT] [creation date] (12): 1227102437
- [STRING] [encoding] (7): UTF-8
+ [DICT] [info] (24241)
- [INT] [length] (11): 315064055
- [STRING] [name] (32): Full Metal Panic! TSR OVA.mkv
- [STRING] [name.utf-8] (32): Full Metal Panic! TSR OVA.mkv
- [INT] [piece length] (8): 262144
- [STRING] [pieces] (24046): 0x5bc99ff0e0d2b901bc5942bbe33e09c915b8e899d5adf764 71...
- [INT] [private] (3): 1
- [STRING] [source] (40): [http://tracker] Tracker
- [STRING] [publisher] (14): User1
- [STRING] [publisher-url] (50): http://tracker/userdetails.php?id=4200
- [STRING] [publisher-url.utf-8] (50): http://tracker/userdetails.php?id=4200
- [STRING] [publisher.utf-8] (14): User1
UP
а когда торрент клиент отправляет запрос на сервер, там первое значение это SHA1 хеш сумма от значение info из метафайла .torrent. До какого поля длиться значения info ?
до
- [INT] [piece length] (8): 262144 ???
т.е. нужно подавать в SHA1 строку в бенкод формате, начиная cо следющего символа после обозначения поля info и до чего конкретно ?
И еще, это хешсумму нужно передвать непосредственно как hex значения или как строку всетаки ?
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot