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

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

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

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

person Jack Billy    schedule 28.02.2011    source источник


Ответы (1)


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

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

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

person Nikolai Gorchilov    schedule 06.03.2011
comment
Почему это: xbtt.sourceforge.net/udp_tracker_protocol.html не содержит список IP-адресов адреса? вопреки документации здесь wiki.theory.org/BitTorrent_Tracker_Protocol - person Saher Ahwal; 13.11.2013
comment
С точки зрения информации нет разницы между HTTP и UDP. Скорее всего, вы сравниваете яблоки с бананами, а именно смешиваете UDP-скрапинг с HTTP-анонсом. Объявление UDP получает одноранговых узлов точно так же, как это делает объявление HTTP. Очистка как HTTP, так и UDP даст вам не фактические пиры, а счетчики. Надеюсь, это прояснит ваше замешательство. - person Nikolai Gorchilov; 14.11.2013