2016-03-19 2 views
0

私は、私たちの小さなISPネットワークで動作しているビートルズのinfohash IDを収集する必要があるプロジェクトに取り組んでいます。ポートミラーリングを使用して、すべてのトラフィックをサーバーに渡し、tcpdumpツールまたはその他のツールを実行して、ビントトレントクライアントがダウンロードしたinfohash IDを見つけることができます。例tcpdumpや他のオープンなscourceツールを使用してネットワーク内のビートルズのinfohash IDを取得する方法は?

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

のために、このコードは、我々は唯一のキャプチャinfohash、ログやMySQLデータベースに格納する必要があり、今この

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 

のような結果を示している

あなたはどのツールを教えてくださいすることができますこのようなことをすることができます

答えて

1

次のプロトコルレイヤーをデコードする必要があるかどうか厳格に応じて:

  1. TCP、フローのパケットをアセンブルします。すでにtcpflowを使用しています。 tshark - wiresharkのCLIもそうすることができます。
  2. HTTPでは、GETヘッダーの値を抽出します。シンプルな正規表現がここで仕事をします。
  3. クエリ文字列私はツールを見える最後の2つのステップのパーセントエンコーディング

  • アプリケーション/ x-www-form-urlencodedで、info_hashキー値ペア抽出および取り扱いを抽出するURI、又はあなたのプログラミング言語でライブラリを扱うことができます。

  • +0

    任意のプログラミング言語ですが、私はこのことが必要です。あなたがこの仕事をしたいのなら、私はあなたにどのように連絡することができますか? –

    関連する問題