1

我正在尝试使用 PHP 为播种机和 leechers 抓取种子跟踪器。这是 torcahche 返回的哈希值: 7026AB638744F2BD2444033A8730DA146E15A886 以下跟踪器随 torrent 一起提供:

udp://tracker.openbittorrent.com:80/announce
udp://tracker.publicbt.com:80/announce
udp://tracker.ccc.de:80/announce

这些是我尝试获取所需信息的方法:

            $orig="7026AB638744F2BD2444033A8730DA146E15A886";
            $infoHash=$orig;
            $nfo='udp://tracker.openbittorrent.com:80/scrape?hash_id='.$infoHash;
            echo '<br>'.$nfo;
            $gitsl=$this->input->get($nfo);
            print_r($gitsl);

            $infoHash=pack('H',$orig);
            $nfo='udp://tracker.openbittorrent.com:80/scrape?hash_id='.$infoHash;
            echo '<br>'.$nfo;
            $gitsl=$this->input->get($nfo);
            print_r($gitsl);

            $infoHash=hex2bin($orig);
            $nfo='udp://tracker.openbittorrent.com:80/scrape?hash_id='.$infoHash;
            echo '<br>'.$nfo;
            $gitsl=$this->input->get($nfo);
            print_r($gitsl);

            $infoHash='%70%26%AB%63%87%44%F2%BD%24%44%03%3A%87%30%DA%14%6E%15%A8%86% ';
            $nfo='udp://tracker.openbittorrent.com:80/scrape?hash_id='.$infoHash;
            echo '<br>'.$nfo;
            $gitsl=$this->input->get($nfo);
            print_r($gitsl);

所以一无所获,出现了以下问题:

  1. torchache 提供的哈希值是否正确?
  2. 一个简单的获取请求真的只需要获取信息吗?
  3. 这甚至是您在codeigniter中执行获取请求的方式吗?
  4. 种子文件本身有问题吗?

我还尝试了多个允许您手动输入哈希信息以进行抓取的站点,但均未成功。

希望有人能帮忙,加油。

4

2 回答 2

1

重复我对这个问题的回答:UDP Tracker Scraping 1 script working other Not


问题是您正在向scrapeUDP-tracker 发送 http-。
UDP-trackers 使用完全不同的协议:BEP15 - BitTorrent 的 UDP Tracker Protocol

于 2015-05-08T17:20:23.603 回答
0

好吧,首先,你不要这样的GET要求。这就是您读取输入值的方式。

其次,您正在尝试通过 UDP 执行请求。所以你不能只是GET它,因为浏览器或其他任何东西都会做一个 HTTP 请求。

如本网站评论中所述

UDP 的问题在于,在 TCP 的情况下,您有一个隧道,所有数据都在隧道内双向传输,但在 UDP 的情况下,您发送 UDP 数据包并且必须打开端口以侦听答案(如果它会回来)。如果你得到一些数据,数据包可以以不同的顺序返回——你也必须处理这个问题。

这就是为什么一个正常的GETfile_get_contents()不会对你有多大好处的原因。

您可以使用stream_wrapper_register()来实现 UDP 请求的包装器。

此外,您应该使用$infoHash = urlencode(pack("H*", $orig))获取提供给跟踪器所需的字符串。

于 2015-05-08T16:41:58.483 回答