Скрапинг торрентов на PHP

Я пытаюсь очистить торрент-трекер от сидов и личеров, используя PHP. Это хеш-значение, возвращаемое torcahche: 7026AB638744F2BD2444033A8730DA146E15A886 Вместе с торрентом поставляются следующие трекеры:

udp://tracker.openbittorrent.com:80/announce
udp://tracker.publicbt.com:80/announce
udp://tracker.ccc.de:80/announce

это методы, которые я пытался получить необходимую мне информацию:

            $orig="7026AB638744F2BD2444033A8730DA146E15A886";
            $infoHash=$orig;
            $nfo='udp://tracker.openbittorrent.com:80/scrape?hash_id='.$infoHash;
            echo '<br>'.$nfo;
            $gitsl=$this->input->get($nfo);
            print_r($gitsl);

            $infoHash=pack('H',$orig);
            $nfo='udp://tracker.openbittorrent.com:80/scrape?hash_id='.$infoHash;
            echo '<br>'.$nfo;
            $gitsl=$this->input->get($nfo);
            print_r($gitsl);

            $infoHash=hex2bin($orig);
            $nfo='udp://tracker.openbittorrent.com:80/scrape?hash_id='.$infoHash;
            echo '<br>'.$nfo;
            $gitsl=$this->input->get($nfo);
            print_r($gitsl);

            $infoHash='%70%26%AB%63%87%44%F2%BD%24%44%03%3A%87%30%DA%14%6E%15%A8%86% ';
            $nfo='udp://tracker.openbittorrent.com:80/scrape?hash_id='.$infoHash;
            echo '<br>'.$nfo;
            $gitsl=$this->input->get($nfo);
            print_r($gitsl);

Так ничего и не получив, возникли следующие вопросы:

  1. Является ли хэш, предоставленный torchache, правильным?
  2. Действительно ли простой запрос на получение — это все, что вам нужно, чтобы получить информацию?
  3. Это даже то, как вы делаете запрос на получение в codeigniter?
  4. Что-то не так с самим торрент-файлом?

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

Надеюсь, кто-нибудь может помочь, ура.


person user3119862    schedule 08.05.2015    source источник
comment
возможный дубликат Как преобразовать хэш информации о торренте для очистки?   -  person gabe3886    schedule 08.05.2015
comment
Этот торрент-хэш нигде не появляется в сети, кроме этого вопроса. Вы уверены, что это правильно?   -  person    schedule 08.05.2015
comment
@duskwuff Создание магнитной ссылки на хеш показывает, что это действительно рабочий торрент. magnet:?xt=urn:btih:7026AB638744F2BD2444033A8730DA146E15A886   -  person Encombe    schedule 09.05.2015


Ответы (2)



Ну, во-первых, вы не должны GET просить так. Вот как вы ПРОЧИТАЕТЕ значение ввода.

Во-вторых, вы пытаетесь выполнить запрос через UDP. Таким образом, вы не можете просто GET сделать это, так как браузер или что-то в этом роде вместо этого будет выполнять HTTP-запрос.

Как указано в комментарии на этом сайте

Проблема с UDP заключается в том, что в случае TCP у вас есть туннель, внутри которого все данные идут в обоих направлениях, но в случае UDP вы отправляете UDP-пакет и должны открыть порт для прослушивания ответа (если он Вернись). И если вы вернете какие-то данные, то пакеты могут вернуться в другом порядке — с этим тоже придется иметь дело.

Вот почему обычные GET или file_get_contents() не принесут вам большой пользы.

Вы можете использовать stream_wrapper_register() для реализации оболочки для UDP. запрос.

Кроме того, вы должны использовать $infoHash = urlencode(pack("H*", $orig)), чтобы получить строку, необходимую для передачи трекеру.

person mariobgr    schedule 08.05.2015