2010-04-08 6 views
2

J'essaie d'obtenir une liste d'adresses IP servant ou téléchargeant un fichier. Ce que je faisais était de contacter un tracker comme openbittorrent.com pour obtenir ce qui suit (dans le cadre du fichier scrape):Obtenir des adresses IP dans Bittorrent

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

Maintenant, la longue chaîne dans le début est le hachage info. À l'étape suivante, j'ai fait ceci:

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

Il m'a donné ce qui suit. Jusqu'ici tout va bien. Le message contenait ceci:

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

Quelqu'un peut-il me dire ce que dois-je faire après cela pour obtenir les adresses IP actuellement en service le fichier ou le télécharger?

Répondre

2

Ce n'est pas un fichier torrent, c'est une réponse d'annonce. Ils sont tous les deux bencode (utilisez bencode pour les décoder), mais la réponse d'annonce ne contient que des informations d'homologue. Ce n'est pas assez d'informations pour être en mesure de télécharger le contenu du torrent: pour ce faire, vous aurez besoin du fichier torrent lui-même. Le membre peers du dictionnaire bencoded contient des groupes de 6 octets que vous pouvez décompresser avec struct. Les quatre premiers octets sont l'adresse IP, suivie de deux octets pour le port. C'est une réponse d'annonce compacte, ce qui est commun (mais IPv4 seulement, évidemment). Vous pouvez également voir des réponses non-compactes qui vous donnent un dictionnaire transparent.

De nombreux trackers aujourd'hui ne vous parlera pas avec le grattent non spécifique que vous annoncez vous envoyez, ou la première annonce demande qui ne comprend pas compact, port ou event. Vous devriez probablement lire the protocol un peu avant d'aller plus loin.

+0

Un grand merci pour cela .. Appréciez aussi le lien .. – Legend

Questions connexes