比特彗星pt模式,tracker汇报最小间隔不会发送完成 min interval = 00:30

https://blog.csdn.net/xwj528/article/details/44157605
百度到的方法?你试试

好,我试试

方法2,抓包完成后,点导航栏的文件选项,导出对象,HTTP,选择需要的文件,点击保存即可,就是解密的文本内容

这个方法好像更简单。。

解码成功了吗?期待看到抓包结果 :grinning:

还以为你要试试,,我昨天解出来了,不过后面有一串peer字符段也是加密的,那个不知道怎么解,可能是JSON?

我连不上你说的那个tracker :sweat_smile: peer信息有两种格式:字符串格式的"peers"同时兼容ipv4和ipv6,二进制格式在’'peers"字段里只有ipv4的peer,ipv6格式在另外的"peers6"字段里。你说的情况估计是后者,所以彗星只读取到了ipv4的peer。至于ipv6的peer有没有在"peers6"字段里返回,还得麻烦你看看昨晚解码的报文了

浏览器里返回的应该是字符串格式的"peers",不知道为什么给彗星返回的像是二进制格式

我重新抓一个发上来

当前67个peer,比特彗星只能获取到59个

d8:intervali3600e12:min intervali30e8:completei67e10:incompletei0e5:peers354:q"…uZ…G…=5.J.(<.,T#’{x…e.jT.w.p.z%F7.y.zk…r.6.1W:.0T…qM.-…*.P.=…7…8…S…_.J…z.K

.S…vp… <…!..4…1D:…s…Su…=…ps.]A.y…qo\e…A…M.1.}MY…q…]…3…xi.r.H…1.n.v…]…e…Fo…]…3…0k…=3/…=.gVn.z…#'w!..-…9.WM.:7B…H .~U…

…uQ.=#&qQ.4…x.+.r.f…}u…p…eA.s…A…j…e

hex数据如下

000001AD  64 38 3a 69 6e 74 65 72  76 61 6c 69 33 36 30 30   d8:inter vali3600
000001BD  65 31 32 3a 6d 69 6e 20  69 6e 74 65 72 76 61 6c   e12:min  interval
000001CD  69 33 30 65 38 3a 63 6f  6d 70 6c 65 74 65 69 36   i30e8:co mpletei6
000001DD  37 65 31 30 3a 69 6e 63  6f 6d 70 6c 65 74 65 69   7e10:inc ompletei
000001ED  30 65 35 3a 70 65 65 72  73 33 35 34 3a 71 5c 22   0e5:peer s354:q\"
000001FD  f3 e2 82 75 5a b3 7f c1  19 8b e2 0b 47 ee e0 3d   ...uZ... ....G..=
0000020D  35 f1 4a 8b 28 3c b0 2c  54 23 27 7b 78 e9 80 65   5.J.(<., T#'{x..e
0000021D  e5 6a 54 17 77 fa 70 ab  7a 25 46 37 81 79 e9 7a   .jT.w.p. z%F7.y.z
0000022D  6b c8 d5 72 e2 36 bb 31  57 3a 98 30 54 fd 8b 71   k..r.6.1 W:.0T..q
0000023D  4d c6 2d c8 d5 de 81 2a  11 50 bc 3d 8c bf 37 c8   M.-....* .P.=..7.
0000024D  98 da 38 fc e7 53 cb de  5f ab 4a f5 a4 7a ee 4b   ..8..S.. _.J..z.K
0000025D  0d bf 53 b7 dc 19 90 ee  e0 76 70 9c bd e8 09 3c   ..S..... .vp....<
0000026D  bd ac c6 c8 d7 dc a6 fa  21 b8 ea 1b 34 be 9b 31   ........ !...4..1
0000027D  44 3a 99 8b 9a 84 1b 73  ce cb 5c c1 53 75 ad c7   D:.....s ..\.Su..
0000028D  2e b0 af 3d 95 c4 a0 c8  d6 70 73 14 5d 41 f1 79   ...=.... .ps.]A.y
0000029D  14 8a 71 6f 5c 65 e4 b5  cc 41 f1 01 cb 4d c6 31   ..qo\e.. .A...M.1
000002AD  1a 7d 4d 59 16 c8 d5 71  c8 b4 7f e5 1b de 5d a2   .}MY...q ......].
000002BD  8f 9f 33 de f6 78 69 c8  72 df 48 1f c9 d4 31 b4   ..3..xi. r.H...1.
000002CD  6e 96 76 c7 1b b4 5d a1  c2 d9 07 65 e0 a8 ee cf   n.v...]. ...e....
000002DD  46 6f c1 02 b0 c7 5d a3  8e 33 04 cc 17 af 08 30   Fo....]. .3.....0
000002ED  6b c8 d5 3d 33 2f ce 9f  f8 3d 81 67 56 6e 86 7a   k..=3/.. .=.gVn.z
000002FD  e2 8e 1a 23 27 77 21 1c  88 2d c1 b7 39 95 57 4d   ...#'w!. .-..9.WM
0000030D  14 3a 37 42 5c c8 d5 01  c5 fa 8f e8 a5 df 48 20   .:7B\... ......H 
0000031D  d5 7e 55 de d9 0d bd a8  c2 75 51 df 3d 23 26 71   .~U..... .uQ.=#&q
0000032D  51 a6 34 f4 d1 1b 16 a8  a5 c8 d5 df 91 78 90 2b   Q.4..... .....x.+
0000033D  e8 72 5c b8 66 c8 d5 7d  75 d0 f4 c8 d5 70 e5 97   .r\.f..} u....p..
0000034D  65 41 f1 73 c1 ad 9a 41  f1 ab 6a c2 da df fc 65   eA.s...A ..j....e

我不会解码16进制。。

“peers”后面的354字节二进制数据都是ipv4 peer,每个ipv4 peer含4字节ip和2字节port共6字节,所以peer个数是354/6=59。ipv6 peers二进制数据按照协议是在“peers6”节点返回,从抓包看好像没有。

目前有两个对策:一是彗星修改一个请求参数,改为compact=0,看看tracker会不会用文本形式返回所有的ipv4、ipv6 peers。但这样报文比二进制形式要长。

二是看看tracker代码,如何发送请求才会返回二进制形式的peers6节点。

如果tracker代码是开源的话,可以把网址发给我看看哦

是pt nexusphp这套程序的嘛,我发你,在bt网络下我不知道有没有相同的问题。。
解压看announce.php文件就行了
https://raw.githubusercontent.com/1265578519/NexusPHP/master/1.5/nexusphp.v1.5.beta5.20130110.zip
按理来说,根据你的介绍,肯定是二进制文件好点,在客户端,虽然这是极小的开销,但是到了服务器上,就截然不同了

好的,谢谢,我看看

2019-07-02 01:19:07 Announce START: http://[2a04:ac00:1:3dd8::1:2710]:2710/announce?info_hash=R%E4%03%0C%28%85%CFl%3B%98%1F%2A%83%1Bz2%0A%0AT%B3&peer_id=-BC0157-%F1%DA%89%2Ah%BBH%01%E9k%E1z&port=22223&natmapped=1&localip=95.179.145.137&port_type=wan&uploaded=0&downloaded=0&left=0&numwant=200&compact=1&no_peer_id=1&key=12654&event=started
2019-07-02 01:19:07 Tracker returned info: interval = 28:42, min interval = 14:21
2019-07-02 01:19:07 Tracker returned 1 peers.
2019-07-02 01:19:07 Tracker returned info: complete = 1, incomplete = 0, downloaded = 0
2019-07-02 01:19:07 schedule next announce in 28:42

其他bt客户的我看到都是compact=1的,应该不是这个问题,,大概吧
bt的公网tracker目前没有发现问题,看到是有返回peers6字段?不过公网的这个tracker服务器不支持ipv4连接,,只能用纯ipv6来连接服务器
d8:completei2e10:downloadedi1e10:incompletei0e8:intervali1792e12:min intervali896e6:peers636:ô€
0Á{^ŒÜQVÏ
ô€ ÈÑ]ŸNühçVÏe

1個讚

看了你发的源代码,确实不支持compact=1模式下返回ipv6 peers。如果你需要,可以帮你修改一下代码:smiley:

额…没办法搞得话,那针对PT站点的就改成compact=0吧,我想了下,,毕竟网站都有gzip,能压缩传输数据,也不会比二进制文件的大多少。或者这套代码怎么改才能二进制返回呢~

你这有测试过,compact=0能返回了吗,,我突然想起来我浏览器访问时候用的是=1啊,,然后他给我返回的带有。

浏览器访问即使加上参数compact=1,但如果是用的ipv6连接tracker,那么tracker代码里会强制compact=1