Как конвертировать хэш торрент-информации для скраба? - PullRequest
3 голосов
/ 17 июля 2010

У меня есть торрент-хеш из ссылки на магнит. Например: fda164e7af470f83ea699a529845a9353cc26576 Когда я пытаюсь получить информацию о пиявках и сверстниках, я должен запросить: http://tracker.publicbt.com/scrape?info_hash=??? Как мне преобразовать хэш информации для этого запроса? Это кодировка или кодировка URL? как? В PHP.

Ответы [ 3 ]

3 голосов
/ 17 июля 2010

Это необработанное шестнадцатеричное представление. Используйте pack() с H для его преобразования. Затем URL закодируйте его.

1 голос
/ 29 октября 2011

В случае, если у кого-то возникнут проблемы, и он столкнется с этим потоком в будущем: вся хитрость в этом вопросе заключается в использовании аргумента bool $raw_output функции PHP: sha1 , установив для него значение "true" ».

Классы BDecode / DEncode можно найти ЗДЕСЬ . Этот проект, называемый Trackon, также включает в себя множество других полезных классов для взаимодействия с торрент-трекерами и файлами.

Итак, в PHP что-то вроде этого будет работать для получения правильного информационного хэша для очистки трекера для деталей:

include('./path/to/BDecode.php');
include('./path/to/BEncode.php');

function getHash($torFile){
    $tfile = BDecode(file_get_contents($torFile));
    $infohash = sha1(BEncode($tfile["info"]), TRUE);

    return urlencode($infohash);
}

Тогда просто назовите это так:

$hash = getHash('./path/to/.torrent');

Надеюсь, это поможет кому-то там. Я все еще чесал голову после прочтения многих постов о том, как получить правильный информационный хеш. Я понимаю, почему это нигде не упоминалось сейчас, хотя этот аргумент был добавлен в PHP 5. Если вы не используете PHP 5, вам придется преобразовать хэш sha1 в необработанный двоичный файл после его вычисления.

1 голос
/ 31 августа 2010

Получил этот фрагмент кода от коллеги,

r = ''
s = 'fda164e7af470f83ea699a529845a9353cc26576'
for n in range(0, len(s), 2):
    r += '%%%s' % s[n:n+2].upper()
print r

Выход:% FD% A1% 64% E7% AF% 47% 0F% 83% EA% 69% 9A% 52% 98% 45% A9% 35% 3C% C2% 65% 76

Работает как шарм.

Редактировать: Работает как талисман за то, что заставляет трекер возвращать статус 200 (ок), но все равно не работает для получения информации о торренте ...

...