Binary 如何在二进制模型中解码对等列表

Binary 如何在二进制模型中解码对等列表,binary,bittorrent,peer,Binary,Bittorrent,Peer,我正在尝试制作一个python BitTorrent客户端,但在理解跟踪器的答案时遇到了一些困难:我收到了一些不可理解的东西(在bencode中),在使用bencode库对其进行解码后,我得到了以下结果: {'min interval': 1800, 'peers': 'N\xe7\x9b\xb1\x91\tS\x9e\x1e\\\x1a\xe1\\Xl4A\x17N}\xeb\xe2\xe7\x86R\xebS\xd9w:H\x0b\xa3\xf6\xddc[Ey\xae\xef\xf7\x0

我正在尝试制作一个python BitTorrent客户端,但在理解跟踪器的答案时遇到了一些困难:我收到了一些不可理解的东西(在bencode中),在使用bencode库对其进行解码后,我得到了以下结果:

{'min interval': 1800, 'peers': 'N\xe7\x9b\xb1\x91\tS\x9e\x1e\\\x1a\xe1\\Xl4A\x17N}\xeb\xe2\xe7\x86R\xebS\xd9w:H\x0b\xa3\xf6\xddc[Ey\xae\xef\xf7\x02\x00&\x9e\x98\xcdR\xedyc\x126\\\x9c\xe9j2H\x02\x06\x95=\xd3\x83m\x11\x13r\xe1p]\x00\x98\xfe0=Z\x11i]X\xe4Z\x00\xad\x1fx?R\xfb\xe5\xc2\x1e#\xc5\xcd7e\x96\xbc[[\x0c\x05\xeam)\x88&f\x1a\xe1J8\x80)\xc5DS\xc0\xd20\x83"\xb4\xb4\x01\xbf\xc5D\\\x92\xcc\xa8)\xa2ilA\xec\xb9\xc0N\xef_N\xdf4\x9e\xffe\xa25gio?\x05\xb6iV\xd6tq\xeeZPvHl\xf7\xd9R\xf4\xff\xca~KY\\\xeb\xd5\xf63\xbcM*\x15T\xd3\xb0\xbd2\x18\x9aWP\x0c\xd5)PLYW\x00 y\xf3)R\x92/L\x0b\\\x91c$\x9e\x8bm\xd6\x95#@\x05X\x8a$\xb0Bc\x95\x9a\xcas\x1a\xe1M\x82\x07\x04\xb3_Z\x16\x93\xe5\xf1H\\\x86%\xe5V\x0c\xc5\xcd\xfbY\xd6\xb4\xaf\x9e\x97\xf2i\x1aR\xf5\xd3\xfc\x84UTf\xc9\'\xc8\xd5\xb0\xbd\'\x9b\xd5\x87QB6\xbe\x93pN\xed(\x86x\x0c', 'interval': 1800, 'complete': 1034, 'incomplete': 262}
如何解码['peer']项?这听起来像是二进制模型编码的,但我找不到任何东西来解码它…

这将在中介绍


每6个字节是一个对等方,4个字节表示IPv4 IP地址,2个字节表示端口。

我正在添加我以前使用的代码:

    from bencode import *

debugModeActivated=False

import requests
r = requests.get("http://www.smartorrent.com:2710/announce?info_hash=%10Y%91%a5%fb%be18%ea%a2y%0c%95%98%de%20%e1%c1%bf%a1%10&peer_id=-TR2820-7ynd5qd1ct1g&port=51413&uploaded=0&downloaded=0&left=1476537925&numwant=80&key=24a78997&compact=0&supportcrypto=1&event=started")
trackerResponse= str(r.content)
if debugModeActivated:
  print"request result:", r.content, "\n"


trackerResponse=bdecode(trackerResponse)
print trackerResponse

@我不知道Python是如何处理它的IP地址的,但我想你会开始做你在任何语言中都会做的事情:从字节构造32位地址和16位端口号(记住它们是按网络顺序存储的)是的,但是我怎么知道,例如,\x1a=26?有没有我能找到的列表或东西?@sinici我不知道你的意思我怎么把\xdf\xf9\xfc\xc2\xa9\xbc翻译成IP地址?@sinici 223.249.252.194:43452可能,但我是手工做的,可能犯了错误