1

ネットワークスニファーを作成する必要があり、python を使用することにしました。パフォーマンスが最高ではないことはわかっています。この種のソフトウェアでは、c または c++ を使用する必要がありますが、優れたプロトタイプがあれば十分です。そのため、Python 2.7 の libpcap ライブラリを使用して作業しており、必要なすべての情報を取得できました: IP ソースと宛先、相対ポート、タイムスタンプ、パケット長。しかし、問題は、トラフィックが多いと大量のパケットがドロップされることに気付いたことです。

これらの情報は、プロセス全体で mysql データベースに挿入されたと言わざるを得ません。

したがって、Scapyをさらに使用する前に、この精緻化中に失うパケット数を測定する方法があるかどうかを理解したいと思います

ありがとうございました

4

1 に答える 1

0

間接的な方法で修正しました。私は使っている

tcpdump -G 3600 -i interface -n -w %H-Capture.pcap

ここから、破棄されたパケットやフィルター処理などに関するすべての統計を収集します。-n基本的に、キャプチャされたパケット内の各ホストを解決しないよう -Gに指示する代わりに、1 時間ごとにファイルを作成するように 3600 秒以上サイクルするように指示するため、破棄されるパケットの割合を最小限に抑えるには、このオプションが不可欠であることに注意してください 。

この後、cli から Scapy に移動し、scapy で次のことを行います。

x = rdpcap("myfile")
len_x = len(x)

for i in x:
   if TCP in i:
      i.show()

これは、TCP パケットのみを表示します。必要に応じて、UDP や ICMP などを同じ方法でフィルタリングすることもできます。

于 2013-06-11T12:02:13.123 に答える