0

Scapyのsniff()関数を使用して、イーサネットからパケットをスニッフィングしています。私はそれをpktという変数に保存します。後で、別の変数buffpktにpktの内容を追加して、同じもののコピーを作成したいと思います。最初は両方の変数をリストとして宣言しましたが、pktがsniff()出力を格納すると、その型がインスタンスに変更されます。以下はコードです。

pkt=[]
buffpkt=[]
pkt=sniff(prn=lambda x:x.sprintf("{IP : %IP.src%  %IP.dst%\n\n} "),timeout=5,store=1)
buffpkt=pkt

結果をbuffpktに追加して、スニッフィングされたすべてのパケットの大きなリストを作成したいのですが、できません。助言がありますか?

4

2 に答える 2

1

あるリストを別のリストに割り当てるだけで、最初のリストが 2 番目のリストを指すようになります。リストをコピーするには、次のようにスライス演算子を使用できます。

buffpkt = pkt[:]

buffpktはコピーになります。

于 2012-08-01T08:25:25.270 に答える
1

標準ライブラリcopyを使用して Python でデータ構造をコピーします: http://docs.python.org/library/copy.html

于 2012-08-01T08:27:23.780 に答える