Получить количество сидов/пиров торрента?

При помощи библиотеки torrent-rw смог получить инфйормацию о торрент файле: список анонсеров, hash info, размер файла и т.п.
Теперь мне нужно получить количество сидов/пиров от анонсеров.
Знаю что нужно отправить GET запрос к анонсеру и передать хеш-сумму. Может мне кто-нибкудь помочь правильно сформировать запрос и расшифровать полученные данные?
UPD
Покопавшись в библиотеке torrent-rw, нашел там функцию scrape. Вроде как она отвечает за вывод статистики, но при ее вызове получаю в ответ такой массив:
{ ["[2001:67c:28f8:92::1111:1]:2710"]=> string(29) "Tracker request timeout (30s)" ["ipv6.leechers-paradise.org:6969"]=> string(29) "Tracker request timeout (30s)" ["tracker.filetracker.pl:8089/scrape"]=> string(29) "Tracker request timeout (30s)" ["tracker2.wasabii.com.tw:6969/scrape"]=> string(29) "Tracker request timeout (30s)" ["46.148.18.250:2710"]=> string(29) "Tracker request timeout (30s)" ["retracker.local/scrape"]=> string(29) "Tracker request timeout (30s)" ["tracker.grepler.com:6969/scrape"]=> string(29) "Tracker request timeout (30s)" ["opentor.org:2710"]=> string(29) "Tracker request timeout (30s)" ["87.248.186.252:8080/scrape"]=> string(29) "Tracker request timeout (30s)" ["125.227.35.196:6969/scrape"]=> string(29) "Tracker request timeout (30s)" ["tracker.tiny-vps.com:6969/scrape"]=> string(29) "Tracker request timeout (30s)" ["210.244.71.25:6969/scrape"]=> string(29) "Tracker request timeout (30s)" ["46.4.109.148:6969/scrape"]=> string(29) "Tracker request timeout (30s)" ["tracker.dler.org:6969/scrape"]=> string(29) "Tracker request timeout (30s)" } )
  • Вопрос задан
  • 3234 просмотра
Пригласить эксперта
Ответы на вопрос 2
skobkin
@skobkin
Гентушник, разработчик на PHP и Symfony.
Это не такая простая задача как может показаться.
Во-первых, раздача может быть без трекера. Во-вторых, если там трекер есть - он может показывать не всех пиров для неё.
Наиболее правильным (в плане отображения корректных значений) решением было бы при наличии трекера спросить список пиров у него, а потом дополнить этот список результатом опроса по DHT. Но это уже значительно более долгая и гораздо менее тривиальная нежели GET-запрос задача. Тут уже придётся работать с протоколом BitTorrent.
Кстати, анонсер может работать и не по HTTP. Так что даже если отбросить уточнение по DHT может быть мало одного GET.
Ответ написан
@MaxPyane
Вот либа для правильного декодирования содержимого торрент файла
https://github.com/christeredvartsen/php-bittorrent

А для получения статистики гугли что-то типа udp/http scrapers. Там принцип простой отправка пакетов через сокеты, можно даже самому написать, 100 строк максимум, все интуитивно, отправляешь запрос смотришь что приходит, расшифровываешь, главное правильно декодировать файл чтобы хэш-код был верен ибо не найдешь пиров никогда или найдешь неверных пиров ))
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы