2010-04-08 76 views
2

我正在尝试获取提供或下载文件的IP地址列表。我所做的就是联系跟踪器像openbittorrent.com得到以下(作为刮文件的一部分):获取Bittorrent中的IP地址

B%00%00%0C%5F%B1%B1l%CAGa%84S%CB%B0%9BG%84%3BE:0:1 

现在,在开始的长字符串是信息的哈希。作为下一步,我做到了这一点:

http://tracker.sometracker.com/announce?info_hash=B%00%00%0C%5F%B1%B1l%CAGa%84S%CB%B0%9BG%84%3BE 

它让我回到以下。到现在为止还挺好。该消息包含在此:

d8:completei0e10:downloadedi0e10:incompletei2e8:intervali1931e12:min intervali965e5:peers12:U���ٿ��ӣǣ^@^@e 

谁能告诉我我应该在此之后怎样做才能获得IP地址,目前服务于文件或下载呢?

回答

2

这不是一个torrent文件,这是一个公告响应。它们都是bencode(使用bencode来解码它们),但是通告响应仅包含对等信息。没有足够的信息来下载洪流的内容:要做到这一点,你需要洪流文件本身。

该编码字典的peers成员包含6个字节的组,您可以使用struct进行解压缩。前四个字节是IP地址,后面跟着端口的两个字节。这是一个紧凑的通告响应,这很常见(但显然只有IPv4)。你也可以看到非紧凑的答案,它给你一个透明的字典。

今天许多跟踪者不会与您发送的非特定刮报声明或最初宣告请求不包含compact,portevent。在继续之前,您应该稍微阅读the protocol

+0

非常感谢那..赞赏链接以及.. – Legend 2010-04-09 01:26:46