2013-03-10 1 views
8

J'ai une liste de torrent info_hashes. Pour chaque info_hash, j'ai une liste de trackers qui correspondent à info_hash.python http/udp bittorrent tracker bibliothèque de grattage

Ce que je voudrais faire est gratter chaque tracker dans la liste pour obtenir le compte semoir/leecher/terminé. Cependant, je préfère ne pas essayer de l'écrire moi-même comme je suis sûr que ce code a été implémenté ailleurs

Est-ce que quelqu'un sait d'une bibliothèque python qui peut gratter http: // et udp: // trackers? J'ai utilisé libtorrent pour d'autres parties de ce projet, mais il ne peut que racler un tracker d'un torrent_handle valide (et je ne veux pas avoir à ajouter ces info_hashes à une session libtorrent afin de gratter le tracker car il va commencer à télécharger les fichiers que je ne veux pas)

Répondre

10

Je ne voulais pas utiliser aussi libtorrent parce que c'est assez inefficace - je veux être capable d'interroger un tracker pour plusieurs info_hashes au lieu d'un à la fois.

Je fini par écrire mon propre code de grattage python HTTP/tracker UDP, voir ici: https://github.com/erindru/m2t/blob/master/m2t/scraper.py (améliorations les bienvenus!)

+0

peut-il vous obtenir la liste la liste des pairs/semeuse d'adresses IP? –

+0

Nope ne se soucie pas pour le moment, mais pourrait être étendu pour le faire –

+0

OK Merci. Une autre question, je vois le http attend un dictionnaire (bencodé) et donc il obtient les données. Pourtant, l'udp ne fait que compenser la mémoire tampon, comment avez-vous connu l'ordre des octets et ce qu'ils représentent, donc si j'ai besoin de l'adresse IP des pairs à quel décalage est-ce? Y a-t-il de la documentation? –

1

Ce n'est pas directement une réponse à votre question, mais une suggestion de la façon dont vous pourriez utiliser libtorrent.

Si vous ajoutez l'info-hachage dans un état de mise en veille non géré automatiquement (contrôlé par les indicateurs dans add_torrent_params). Dans ce cas, libtorrent ne commencera pas à le télécharger. Gardez à l'esprit que libtorrent ne prend pas (encore) en charge l'extraction de la DHT.