Отправка запроса на получение семян торрента и пиров
Я пытался создать торрент-сайт, но я застрял в следующем. Как отправить торрент-запрос на очистку, чтобы получить его сеялки и пиявки?
У меня есть функция класса 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-трекера.