获取获取洪流种子和同伴的刮擦请求

时间:2011-02-28 09:42:28

标签: php html bittorrent utorrent

我一直在尝试创建一个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.....

1 个答案:

答案 0 :(得分:5)

由于我对PHP的经验有限,我无法帮助您使用代码,但处理HTTP跟踪器应该相当容易。

获取宣布网址,搜索并将“宣布”替换为“抓取”并添加?infohash=<url-encoded-binary-20-byte-long-infohash>作为参数(您可以在查询中添加尽可能多的infohash=,除以&符号。 HTTP调用生成的URL并读取你的bencoded答案。它将包含所有请求的信息哈希及其各自的下载,播种机(跟踪器词汇表中的“完整”)和leechers(“不完整”).HTTP scrape非常{{3 }}

处理UDP跟踪器有点复杂,因为这种二进制形式的通信发生在更低的级别。查看well documented