3

TCP/IP パケットを文字列形式に分解しています。それを構造化して保管するための最良の方法は何ですか? ctypes 構造体、python クラス、辞書、またはその他の方法で保存する必要がありますか? 各方法の長所と短所は何ですか?

4

3 に答える 3

8

クラスを使用する必要があります。これにより、将来の成長に向けた最大限の柔軟性が得られます。

辞書には、その内容にアクセスするためのより冗長な構文があり、必要な場合にメソッドを追加することはできません。

ctypes は、他の API で使用するためにパックされた構造体にアクセスするためのものです。データが Python に残る場合、唯一の利点は、メモリ内でよりコンパクトになることです。

于 2011-02-11T03:15:22.563 に答える
1

私は詳細な要件の大ファンです。

それらがない場合は、名前付きタプルを使用します。

のようなことができますthisPacket.srcPort

次に、パケットをMongoDBなどに押し込んで、後でクールな方法でクエリを実行できます

于 2011-02-11T11:22:22.247 に答える
1

私はこのようなもののための辞書の大ファンです

  1. 次のようなことができますPacket['srcPort']
  2. 次に、パケットを MongoDB のようなものに押し込んで、後でクールな方法でクエリを実行できます (つまり、ポート 80 に着信し、特定のフラグが設定されたサブネットからのすべてのパケットを取得します)。
于 2011-02-11T03:54:12.593 に答える