стуктура .torrent файлов

Discussion in 'PHP' started by eLWAux, 17 Nov 2008.

  1. eLWAux

    eLWAux Elder - Старейшина

    Joined:
    15 Jun 2008
    Messages:
    860
    Likes Received:
    616
    Reputations:
    211
    не знал куда запостить, поетому запостил сюда, так-как в будущем єсть идеи написать perl-анализатор..;)

    подскажите, где найти инфо про структуру .torrent файла..
    искал-не нашол, плохо искал)
     
    2 people like this.
  2. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
  3. mr.The

    mr.The Elder - Старейшина

    Joined:
    30 Apr 2007
    Messages:
    1,080
    Likes Received:
    456
    Reputations:
    38
    astrologer +1
    ТС - на русском можеш неискать. нету. читай что есть. структура имхо очень хитровые...ая. особенно вложеность параметров один в другой. а в остальном всё просто)
     
  4. eLWAux

    eLWAux Elder - Старейшина

    Joined:
    15 Jun 2008
    Messages:
    860
    Likes Received:
    616
    Reputations:
    211
    уже я немножко накатал:
    Code:
    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. eLWAux

    eLWAux Elder - Старейшина

    Joined:
    15 Jun 2008
    Messages:
    860
    Likes Received:
    616
    Reputations:
    211
    уже нашол инфо про строки:
    и сделал ф-цию для чтения строк:
    Code:
    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');
    может у кого-то єсть наброски кода?)
     
  6. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    809
    Reputations:
    231
    эээ? а чо она делает?
     
    _________________________
  7. eLWAux

    eLWAux Elder - Старейшина

    Joined:
    15 Jun 2008
    Messages:
    860
    Likes Received:
    616
    Reputations:
    211
    чтоб читать byte strings из торрента
     
  8. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Их должно быть немало в сети. Для PHP что-то есть.
     
  9. eLWAux

    eLWAux Elder - Старейшина

    Joined:
    15 Jun 2008
    Messages:
    860
    Likes Received:
    616
    Reputations:
    211
    torrentflux - єто не парсер походу..
    4 МБ для парсера замного)
    меня интересует только как достать данние..
    только что понял что там супер заебистая система, параметри в параметрах под параметрами)..
     
  10. gisTy

    gisTy Elder - Старейшина

    Joined:
    24 May 2008
    Messages:
    432
    Likes Received:
    160
    Reputations:
    27
    torrentflux - это не чистый парсер, это полноценный торрент-клиент.. но ему же как то надо парсить .torrent-файлы... собственно можешь выдернуть парсер оттуда и переделать его на перле
     
  11. eLWAux

    eLWAux Elder - Старейшина

    Joined:
    15 Jun 2008
    Messages:
    860
    Likes Received:
    616
    Reputations:
    211
    так и сделаю
     
  12. Nek1t

    Nek1t Elder - Старейшина

    Joined:
    7 Mar 2008
    Messages:
    181
    Likes Received:
    16
    Reputations:
    1
    Глянь исходник TBDev, там есть как раз функция для чтения структуры *.torrent
     
  13. cupper

    cupper Elder - Старейшина

    Joined:
    6 Jun 2007
    Messages:
    369
    Likes Received:
    92
    Reputations:
    5
    UP

    а когда торрент клиент отправляет запрос на сервер, там первое значение это SHA1 хеш сумма от значение info из метафайла .torrent. До какого поля длиться значения info ?
    до
    - [INT] [piece length] (8): 262144 ???
    т.е. нужно подавать в SHA1 строку в бенкод формате, начиная cо следющего символа после обозначения поля info и до чего конкретно ?

    И еще, это хешсумму нужно передвать непосредственно как hex значения или как строку всетаки ?
     
    #13 cupper, 9 Oct 2009
    Last edited: 9 Oct 2009