如何从 http 跟踪器响应中解析 IP 和端口
How to parse Ip and port from http tracker response
我正在向跟踪器发送请求并得到响应
d8:completei2e10:downloadedi1e10:incompletei1e8:intervali1971e12:min intervali985e5:peers18:\235'73[=18=]0[=18=]01e574-3"\022,02e
如何从此响应中获取对等点列表或对等点 IP 和端口
来自跟踪器的响应是编码。
为清楚起见添加一些空格:
d
8:complete
i2e
10:downloaded
i1e
10:incomplete
i1e
8:interval
i1971e
12:min interval
i985e
5:peers
18:5'73[=10=]0[=10=]01e574-3"2,02
e
具有 18 字节二进制字符串的 key:peers 作为 value 包含对等点在 'compact=1' 中指定的形式:[BEP23 - Tracker Returns Compact Peer Lists] and also in [the wiki]
每个对等点由 6 个字节表示,bigendian 中 4 个字节 IPv4 + 2 个字节 PORT,因此 18 个字节的字符串用于 3 个对等点。
5 ' 7 3 [=11=]0 [=11=]0=>157 39 23 171 0 0(0*256+0=0) =>157.39.23.171:0
1 e 5 7 4 - =>227 101 53 55 252 45(252*256+45=64557)=>227.101.53.55:64557
3 " 2 , 0 2=>27 34 18 44 184 192(184*256+192=47298)=>27.34.18.44:47298
(\235 是 157 的八进制,'
的 ASCII 值是 39 等)
我正在向跟踪器发送请求并得到响应
d8:completei2e10:downloadedi1e10:incompletei1e8:intervali1971e12:min intervali985e5:peers18:\235'73[=18=]0[=18=]01e574-3"\022,02e
如何从此响应中获取对等点列表或对等点 IP 和端口
来自跟踪器的响应是编码。
为清楚起见添加一些空格:
d
8:complete
i2e
10:downloaded
i1e
10:incomplete
i1e
8:interval
i1971e
12:min interval
i985e
5:peers
18:5'73[=10=]0[=10=]01e574-3"2,02
e
具有 18 字节二进制字符串的 key:peers 作为 value 包含对等点在 'compact=1' 中指定的形式:[BEP23 - Tracker Returns Compact Peer Lists] and also in [the wiki]
每个对等点由 6 个字节表示,bigendian 中 4 个字节 IPv4 + 2 个字节 PORT,因此 18 个字节的字符串用于 3 个对等点。
5 ' 7 3 [=11=]0 [=11=]0=>157 39 23 171 0 0(0*256+0=0) =>157.39.23.171:0
1 e 5 7 4 - =>227 101 53 55 252 45(252*256+45=64557)=>227.101.53.55:64557
3 " 2 , 0 2=>27 34 18 44 184 192(184*256+192=47298)=>27.34.18.44:47298
(\235 是 157 的八进制,'
的 ASCII 值是 39 等)