2

我需要获取给定 .torrent 的播种机和 leechers 的数量。比方说这个(它是目前非常流行的洪流,它肯定有大量的播种机和水蛭)

我对 torrent 文件进行了解码并得到了公告:

$announces = array("udp://tracker.opentrackr.org:1337/announce",
"udp://tracker.coppersurfer.tk:6969/announce",
"udp://tracker.openbittorrent.com:80/announce",
"udp://glotorrents.pw:6969/announce",
"udp://tracker.leechers-paradise.org:6969/announce",
"udp://zer0day.ch:1337/announce",
"udp://9.rarbg.me:2710/announce",
"udp://tracker.trackerfix.com:80/announce",
"udp://eddie4.nl:6969/announce",
"udp://9.rarbg.to:2710/announce");

以及 hash_info = "0ddf5052c1c580a129598186e05c494f45727881";

然后我将“udp”替换为“http”,将“announce”替换为“scrape”,并使用 Torrent 哈希发送 curl 获取请求,如下所示:

foreach($announces as $announce){
$scrape_url = str_ireplace( array( 'udp://', '/announce' ), array( 'http://', '/scrape' ), $announce).pack('H*',"0ddf5052c1c580a129598186e05c494f45727881");
echo file_get_contents($scrape_url)."<hr>";
}

但我唯一得到的是“连接被拒绝”、“操作超时”和“HTTP 请求失败!HTTP/1.1 404 Not Found”。我究竟做错了什么?顺便说一句,Curl 给出了相同的结果。

4

1 回答 1

2

问题是您尝试在 UDP 跟踪器上执行 http-scrapes。
要抓取 UDP 跟踪器,您需要遵循以下协议:
BEP15 -BitTorrent 的 UDP 跟踪器协议

于 2016-06-17T06:58:38.413 回答