2016-03-19 2 views
0

Ich arbeite an einem Projekt, bei dem wir die bitorrent infohash ID in unserem kleinen ISP Netzwerk sammeln müssen. Mithilfe der Portspiegelung können wir den gesamten Datenverkehr an einen Server weitergeben und tcpdump-Tools oder ein anderes Tool ausführen, um den infhash-ID-Download durch den bitorrent-Client zu finden. zum Beispielwie bitorrent Infohash-ID im Netzwerk mit tcpdump oder einem anderen Open-Source-Tool erfassen?

tcpflow -p -c -i eth1 tcp | grep -oE '(GET) .* HTTP/1.[01].*' 

dieser Code Ergebnis wie dieses

GET /announce?info_hash=N%a1%94%17%2c%11%aa%90%9c%0a%1a0%9d%b2%cfy%08A%03%16&peer_id=-BT7950-%f1%a2%d8%8fO%d7%f9%bc%f1%28%15%26&port=19211&uploaded=55918592&downloaded=0&left=0&corrupt=0&key=21594C0B&numwant=200&compact=1&no_peer_id=1 HTTP/1.1 

zeigt nun wir nur erfassen müssen infohash und speichern Sie es in ein Protokoll oder MySQL-Datenbank

können Sie mir bitte sagen, welches Werkzeug kann so etwas tun

Antwort

1

Je nachdem, wie streng Sie sein wollen, müssen Sie die folgenden Protokollschichten dekodieren:

  1. TCP, Pakete eines Flusses zusammenbauen. Das tust du schon mit tcpflow. tshark - wiresharks CLI - könnte das auch tun.
  2. HTTP, extrahieren Sie den Wert des GET-Headers. Eine einfache Regex würde hier die Arbeit machen.
  3. URI, Extrahieren der Abfragezeichenfolge
  4. Anwendung/x-www-form-urlencoded, info_hash Schlüsselwertpaar-Extraktion und Verarbeitung von URL-Encoding

Für die letzten zwei Schritte I für Werkzeuge aussehen würde, oder Bibliotheken in Ihrer bevorzugten Programmiersprache.

+0

jede Programmiersprache, aber ich brauche dieses Ding. Wie kann ich Sie kontaktieren, wenn ich möchte, dass Sie diesen Job machen? –

Verwandte Themen