我一直在尝试创建一个torrent网站,但我坚持以下内容。 如何发送洪流刮取请求以获取其播种机和leechers?
我有一个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.....
答案 0 :(得分:5)
由于我对PHP的经验有限,我无法帮助您使用代码,但处理HTTP跟踪器应该相当容易。
获取宣布网址,搜索并将“宣布”替换为“抓取”并添加?infohash=<url-encoded-binary-20-byte-long-infohash>
作为参数(您可以在查询中添加尽可能多的infohash=
,除以&符号。 HTTP调用生成的URL并读取你的bencoded答案。它将包含所有请求的信息哈希及其各自的下载,播种机(跟踪器词汇表中的“完整”)和leechers(“不完整”).HTTP scrape非常{{3 }}
处理UDP跟踪器有点复杂,因为这种二进制形式的通信发生在更低的级别。查看well documented。