3

Python を使用して、pcap ファイル内のリンク層のタイプとパケットのバージョンをデコードしたいと思います。したがって、Python を使用して pcap を解析する必要があります。これが私のコードです。

import dpkt
import socket
import sys

f = open('filename')
pcap = dpkt.pcap.Reader(f)

for ts, buf in pcap:
  eth = dpkt.ethernet.Ethernet(buf)
  ip = eth.data
  tcp = ip.data
    print ts, len(buf)
    print eth
    print ip
    print tcp

f.close() 
4

1 に答える 1

0

dpkt python ライブラリは、このタスクに最適なツールではない可能性があります。彼らのウェブサイトによると、dpkt は次の用途に最適です。

基本的な TCP/IP プロトコルの定義を使用した、高速でシンプルなパケットの作成/解析。

代わりに scapy を使用してください。

Python 用の強力な対話型パケット操作プログラム。

このようなスクリプトを使用できます

from scapy.all import *
packets = rdpcap('tmp.pcap')
for p in packets:
    (p/Ether()).show()

詳細については、Python の Scapy モジュールの無限の可能性をご覧ください。

于 2015-05-19T20:16:30.607 に答える