我对udp跟踪器响应消息感到困惑,"20 +6* n“或"24 +6* n”或"20 +6* N“是什么意思?我尝试考虑20 +6*n,因为有number(索引从16到20)=n个seeders,下标为20到20的字节+6*n表示有关seeders的具体信息,6个bytes=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...(all为0)
发布于 2019-01-25 12:58:43
如果数据包格式表示为C结构,那么该结构的最后一个成员将是一个flexible array member,其中包含表示IP:port对的数组成员。
换句话说,数据包的尾部由N*6个字节组成。20是该尾部开始的字节偏移量。
https://stackoverflow.com/questions/54304446
复制相似问题