小编Pap*_*ppa的帖子

node.js 中的 UDP 跟踪器抓取意外返回零

我正在尝试使用BitTorrent UDP 跟踪器协议从公共 UDP 跟踪器(例如 tracker.publicbt.com 或 tracker.openbittorrent.com)执行 UDP 抓取。我的应用程序向跟踪器发送一个 connection_id 请求,并使用该 ID 执行抓取。抓取响应从跟踪器返回,没有错误表明数据包格式错误,但无论我使用什么 info_hash,我都会返回“0”作为播种者、吸血者和完成者的数量。

我已经彻底检查了数据包的大小是否正确,info_hash 是否以正确的偏移量开始,以及数据是否全部正确。据我所知,创建和发送数据包没有问题。这个问题几天来一直没有得到解答,所以我更新并编辑了下面的代码示例,希望有人能提供帮助。

我已将 info_hash 硬编码到以下示例中。在命令行上运行时,此代码应连接到跟踪器,获取 connection_id,然后在 Ubuntu 种子 info_hash 上执行抓取,将各种信息输出到控制台。

connection_id 被分成 2 部分,因为它是一个 64 位整数。

var dgram = require('dgram'),
    server = dgram.createSocket("udp4"),
    connectionIdHigh = 0x417,
    connectionIdLow = 0x27101980,
    交易 ID,
    行动,
    trackerHost = "tracker.publicbt.com",
    跟踪端口 = 80,
    infoHash = "",
    ACTION_CONNECT = 0,
    ACTION_ANNOUNCE = 1,
    ACTION_SCRAPE = 2,
    ACTION_ERROR = 3,
    sendPacket = 函数(缓冲区,主机,端口){
        “严格使用”;
        server.send(buf, 0, buf.length, port, host, function(err, …

javascript bittorrent udp node.js

3
推荐指数
1
解决办法
811
查看次数

标签 统计

bittorrent ×1

javascript ×1

node.js ×1

udp ×1