Bencode – PHP-класс для простого получения основной информации о торрент-файле
Торренты в прямом смысле перевернули весь принцип скачивания файлов в сети Интернет. Много лет назад мы часами ждали окончания загрузки того или иного файла, а при прерывании загрузки по техническим причинам проделывали все шаги для получения файла вновь.
На данный момент существует большое количество тематических сайтов, где вы без труда можете скачать музыку, фильмы, различные обучающие материалы и прочее, как раз используя этот протокол. Чтобы повысить доверие пользователей, такие ресурсы предоставляют максимально подробную информацию о торрент-файлах на своих страницах. О том, как получить эту информацию, сегодня и пойдет речь.
Для PHP существует прекрасный класс под названием «Bencode», который без особого труда позволяет извлечь основную информацию из торрент-файла. К этой информации относится размер раздачи, список (названия) файлов в раздаче, комментарии к раздаче, хеш-информация, количество частей в раздаче, приватность раздачи и список анонсеров. С помощью последних дополнительно вы можете узнать количество раздающих (seeder) и скачивающих (leech) устройств. Но об этом уже читайте в следующих наших статьях.
Итак, что нужно сделать, что бы получить информацию о файле?
1. Скачайте архив в конце статьи. Содержимое разархивируйте и закачайте на сайт удобным для вас способом.
2. Далее в вашем PHP-скрипте подключите скачанный ранее класс:
require "./bencoded.php";
Делать это желательно в самом верху файла. Не забывайте указать корректную ссылку до файла.
3. Далее вы вставляете следующий код:
$torrent = new Torrent("./файл.torrent"); // Ссылка до файла на сервере
$is_private = $torrent->is_private() ? "да" : "нет"; // Приватная ли раздача
$annonce = $torrent->announce(); // Анонсеры
$name = $torrent->name(); // Список файлов
$comment = $torrent->comment(); // Комментарии к раздаче
$piece_length = $torrent->piece_length(); // Количество частей в раздаче
$size = $torrent->size(2); // Размер раздачи
$hash_info = $torrent->hash_info(); // Хеш-информация
Не забываете в его первой строке указать ссылку до локального (того, что находится на вашем сайте) торрент-файла.
А далее вы просто выводите необходимую вам информацию в нужном месте скрипта, например, так:
echo "Размер раздачи: ".$size;
Все очень просто. Обратите внимание, что список анонсеров хранится в массиве, это значит, что через простое «echo» вам его не вывести. Используйте foreach или индексы массива.