【问题标题】:How to parse the leecchers/seeders section of UDP tracker response message?如何解析 UDP 跟踪器响应消息的 leecchers/seeders 部分?
【发布时间】:2019-01-22 08:52:35
【问题描述】:

我对 udp 跟踪器响应消息感到困惑,“20 + 6 * n”或“24 + 6 * n”或“20 + 6 * N”是什么意思?我试着认为 20 + 6 * n 因为有 number(index from 16 to 20)=n 播种机和下标从 20 到 20 + 6 * n 的字节表示播种机的具体信息,6 字节=4 字节 从端口获取 ip 和 2 个字节,但结果是错误的。

Offset      Size            Name            Value
0           32-bit integer  action          1 // announce
4           32-bit integer  transaction_id
8           32-bit integer  interval
12          32-bit integer  leechers
16          32-bit integer  seeders
20 + 6 * n  32-bit integer  IP address
24 + 6 * n  16-bit integer  TCP port
20 + 6 * N  

以下是我收到的 udp 跟踪器响应示例: 0,0,0,1,28,120,62,218,0,0,12,0,0,7,182,0,0,0,1,0,0,0,0,77,73,68,7,156,0, 0,0,1,0,210,39,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,223,112,27,34,0,39,15,0,0,0,0,0,0...(全为0)

【问题讨论】:

    标签: java udp p2p bittorrent


    【解决方案1】:

    如果数据包格式表示为 C 结构,则结构的最后一个成员将是 flexible array member,其中数组成员表示 IP:端口对。

    换句话说,数据包的尾部由 N * 6 个字节组成。 20 是该尾部开始的字节偏移量。

    【讨论】:

      猜你喜欢
      • 2012-01-27
      • 1970-01-01
      • 1970-01-01
      • 2012-07-11
      • 1970-01-01
      • 2020-02-13
      • 1970-01-01
      • 2020-06-14
      • 1970-01-01
      相关资源
      最近更新 更多