Отправка запроса на получение семян торрента и пиров

Я пытался создать торрент-сайт, но я застрял в следующем. Как отправить торрент-запрос на очистку, чтобы получить его сеялки и пиявки?

У меня есть функция класса PHP, которая предоставляет мне список объявлений.

public function getTrackers() {
    // Load tracker list
    $trackerlist = array();

    if ( $this->torrent->get_value('announce-list') )
    {
        $trackers = $this->torrent->get_value('announce-list')->get_plain();
        while ( list( $key, $value ) = each( $trackers ) )
        {
            if ( is_array( $value->get_plain() ) ) {
                while ( list( $key, $value2 ) = each( $value ) )
                {
                    while ( list( $key, $value3 ) = each( $value2 ) )
                    {
                        array_push( $trackerlist, $value3->get_plain() );
                    }
                }
            } else {
                array_push( $trackerlist, $value->get_plain() );
            }
        }
    }
    else if ( $this->torrent->get_value('announce') )
    {
        array_push( $trackerlist, $this->torrent->get_value('announce')->get_plain() );
    }

    return $trackerlist;
}

Этот код основан на данных, закодированных в bencode.php. Как показывать " Семена и сверстники" на каждом последующем объявлении, как это?

Annouce Url | Seeds : No. | Peers: No.     
Annouce Url | Seeds : No. | Peers: No.     
Annouce Url | Seeds : No. | Peers: No. 
and so on.....

1 ответ

Решение

Я не могу помочь вам с кодом из-за моего ограниченного опыта работы с PHP, но работа с HTTP-трекерами должна быть довольно простой.

Получите URL объявления, найдите и замените слово "анонс" на "царапать" и добавьте ?infohash=<url-encoded-binary-20-byte-long-infohash> в качестве параметра (вы можете добавить как можно больше infohash= на ваш запрос, разделенный на амперсанд. Сделайте HTTP-запрос к полученному URL-адресу и прочитайте ответ с зашифрованным текстом. Он будет содержать все запрошенные информационные хэши с их соответствующими загрузками, сеялками ("завершено" в словаре трекера) и "личерами" ("не завершено"). Скраб HTTP очень хорошо документирован.

Работа с UDP-трекерами несколько сложнее, потому что эта двоичная форма связи происходит на гораздо более низком уровне. Проверьте полное описание протокола UDP-трекера.

Другие вопросы по тегам