Python 跟踪器会话的缺失部分

Python 跟踪器会话的缺失部分,python,bittorrent,Python,Bittorrent,试图理解/反向设计torrent/tracker对话。我已经设法运行了一些简单的代码,可以点击跟踪程序并打印响应 >>> import urllib2 >>> import urllib >>> import binascii >>> hash = "0221caf96aa3cb94f0f58d458e78b0fc344ad8bf" >>> url = "http://torrent.ubuntu.com

试图理解/反向设计torrent/tracker对话。我已经设法运行了一些简单的代码,可以点击跟踪程序并打印响应

>>> import urllib2
>>> import urllib
>>> import binascii

>>> hash = "0221caf96aa3cb94f0f58d458e78b0fc344ad8bf"
>>> url = "http://torrent.ubuntu.com:6969/scrape?info_hash="
>>> url += urllib.quote(binascii.a2b_hex(hash))
>>> f=urllib2.urlopen(url).read()
>>> print f
d5:filesd20:☻!╩∙jú╦ö≡⌡ìEÄx░ⁿ4J╪┐d8:completei4e10:downloadedi0e10:incompletei1e4:name20:dapper-dvd-amd64.isoeee
根据,我扩展了代码,试图得到一个同龄人列表;这些参数是从wireshark嗅探中一字不差地提取出来的(更多信息见下文)

使用wireshark,我嗅到了一个“已知工作”的源代码(相同的torrent/info\u散列信息,但使用的是utorrent),然后嗅到了我愚蠢的小程序;在这两种情况下,跟踪器都会以3个数据包([ACK]、[PSH,ACK]和[FIN ACK])的形式响应类似的数据集;但在我的python程序中,我没有看到任何超过第一个[ACK]的数据


在网络或数据包操作方面不是特别流利,所以我很感谢任何指点!

Totes在这里做了一个derp。刚刚注意到URL片段的这一部分

&numwant=0

…当更改为1或更高时,将修复所有问题。

如果常规通告请求之间的间隔小于第一个跟踪器通告查询响应的间隔字段值,则某些HTTP跟踪器可能不会响应。自从应用回答的“修复”后,我从未遇到过该问题但是下次我碰到墙的时候会记住这一点。谢谢你的信息!
&numwant=0