Bittorrent

VB.NET: Torrentdatei einlesen, announce durchführen und IPs auslesen

Ähnlich wie mit PHP BitTorrent Announce Client wollte ich auch einmal eine BitTorrent Datei mit VB.NET einlesen und sämtliche Info der Torrentdatei parsen, wie z.B. Announceurl, enthaltene Dateiinformationen und den Hashwert. Da sämtliche Dateien und Kommunikation innerhalb von Bittorent bencoded werden, muss man die Info entsprechend vorher "entschlüsseln" bzw konvertieren.

Bittorrent Trackerresponse / Announce über PHP erstellen

In Bittorrent erfolgt die Kommunikation zwischen Server (Tracker) und dem Client über Kommandos die bencoded werden. Dieses kleine Beispiel zeigt wie man einen Liste von Hostadressen mit IP und Port so aufbereiten kann, dass sie von einem Bittorrent Client verstanden werden. Das Beispiel nutzt die einfache Darstellungen es gibt auch eine kompakte Darstellung, dort werden die Adressen zusätzlich noch komprimiert.

Torrenflux IPs Protokollieren

Zum Entwickeln und Testen des "PHP BitTorrent Announce Client" brauchte ich eine Möglichkeit die Trackeranfragen mitzuschneiden und zu bearbeiten. Ich habe schließlich den Standard Bittorrent Client in Python genommen, welcher dem TorrentFlux beiliegt, und ein paar Zeilen hinzugefügt.

PHP BitTorrent Announce Client

Bittorrent macht mittlerweile einen Großteil des weltweiten Datenverkehrs aus. Ohne eine Torrentdatei und einen dazugehörigen Tracker läuft hier nichts. Ich habe eine Klasse in PHP erstellt, welche die Daten aus einer Torrentdatei auslesen kann und eine Anfrage an den Tracker schickt, welcher schließlich die IP-Adressen ausspuckt.
Es läßt sich mit dieser Klassen ein kompletter Client gegenüber dem Tracker simulieren, vom Starten des Downloads bis zum fertigstellen.
Dateien werden bei diesem Vorgang nicht übertragen (wird wohl in PHP nicht machbar sein). Es soll hier nur um das Verständnis der Kommunikation zwischen Client und Tracker über das http-Protokoll und des Bencoding gehen.

Inhalt abgleichen