1

ソケットプログラミングだと思います。しかし、Pythonの学習中にチュートリアルの例を実行することを期待して、ソケットプログラミングを行ったことはありません。これを実装するには、もう少しアイデアが必要です。

私が特に必要としているのは、サーバーの監視プログラムを実行することです。このプログラムは、さまざまな人気のあるポート間でさまざまなIPから交換されるトラフィックをポーリングまたはリッスンします。たとえば、192.168.1.10のポート80と192.168.1.1(ゲートウェイ)を介してデータを送受信するにはどうすればよいですか。

MRTG、Bwmon、Ntopなどの既製のツールをいくつかチェックしましたが、特定のパターン調査を行うことを検討しているため、プログラム内でデータキャプチャを行う必要があります。

アイデアは、いくつかの人気のあるポートを監視し、いくつかの期間にわたるネットワークトラフィックの調査を行い、それらを他のデータと比較することです。

Pythonでこれらすべてを行う方法を考えたいと思います。

4

2 に答える 2

2

あなたはおそらくそのためにscapyを使いたいでしょう。特定のインターフェイス上のすべてのイーサネットトラフィックをスニッフィングし、TCPではなくポートと一致しないものをすべてドロップします。

scapyがすでにTCP接続を追跡できるかどうかはわかりませんが(重複するシーケンス番号の認識、ペイロードストリームのみの抽出など)、おそらく可能だと思います。そうでない場合は、十分に機能するTCP接続トラッカーを一緒にハックするのはそれほど難しくありません。トラフィックの95%。

別の方法は、ソケットを直接使用する(rawソケットを探す)か、libpcapを使用することです。どちらもPythonから実行できます。また、「tcpdump」コマンドラインツールのフィルターエクスプレッション構文を確認することもできます。おそらく、すでに必要なことを実行できます。

このためのより専門的な高レベルのツールがあるに違いありませんが、私はそれらを知りません。

PS:wiresharkをまだ知らない場合は、チェックして、最初に試してみてください。TCPストリームを追跡でき、TCP接続追跡の意味を学習します。たぶん、そのコマンドラインバイナリであるtsharkを使用して、必要なTCPストリームを抽出できます。

于 2012-06-03T17:21:18.343 に答える
0

IPTrafは、ncursesベースのIPLAN監視ツールです。TCP、UDP、ICMPなどのネットワーク統計を生成する機能があります。

Pythonから実行することを考えているので、画面(VT100 / ANSIターミナルエミュレーションを備えた画面マネージャー)を使用してncursesの問題を克服することを検討できます。また、ログと間隔のパラメーターをIPTrafに渡して、iptrafにログを強制的に送信することもできます。指定された間隔でファイルします。少し注意が必要ですが、基本的にログファイルを解析することで、最終的には探しているものを取得できます。

于 2012-06-03T17:51:36.143 に答える