Мне нужно получить количество сеялок и пиявок данного .torrent.
Скажем этот (это действительно популярный торрент на данный момент, и он определенно имеет множество сеялок и пиявок)
Я расшифровал торрент-файл и получил анонсы:
$announces = array("udp://tracker.opentrackr.org:1337/announce",
"udp://tracker.coppersurfer.tk:6969/announce",
"udp://tracker.openbittorrent.com:80/announce",
"udp://glotorrents.pw:6969/announce",
"udp://tracker.leechers-paradise.org:6969/announce",
"udp://zer0day.ch:1337/announce",
"udp://9.rarbg.me:2710/announce",
"udp://tracker.trackerfix.com:80/announce",
"udp://eddie4.nl:6969/announce",
"udp://9.rarbg.to:2710/announce");
а также hash_info = «0ddf5052c1c580a129598186e05c494f45727881»;
Затем я заменяю «udp» на «http» и «announce» на «scrape» и отправляю запрос на получение curl с торрент-хешем так:
foreach($announces as $announce){
$scrape_url = str_ireplace( array( 'udp://', '/announce' ), array( 'http://', '/scrape' ), $announce).pack('H*',"0ddf5052c1c580a129598186e05c494f45727881");
echo file_get_contents($scrape_url)."<hr>";
}
Но единственное, что я получаю, это «Отказано в соединении», «Тайм-аут операции» и «Запрос HTTP не выполнен! HTTP / 1.1 404 Not Found». Что я делаю неправильно? Керл дает тот же результат, кстати.
Проблема в том, что вы пытаетесь делать http-соскобы на UDP-трекерах.
Для очистки UDP-трекеров необходимо следовать протоколу, описанному в:
BEP15 — протокол отслеживания UDP для BitTorrent
Других решений пока нет …