Отправка запроса на получение семян торрента и пиров - PullRequest
6 голосов
/ 28 февраля 2011

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

У меня есть функция класса 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 . Как показать Семена и Пиры каждого URL-адреса следующего объявления, как это?

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

1 Ответ

5 голосов
/ 06 марта 2011

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

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

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

...