scapyでpcapファイルを逐次的に解析する
Pythonでpcapファイルを解析するにはscapyが便利。scapyを用いてpcapファイルを逐次的に解析するには、下記のようにsniffメソッドを使えばよい。
from scapy.all import * from datetime import datetime def analyze(pkt): # キャプチャ日時はpkt.timeからunix timestampで得られる datetime_str = datetime.fromtimestamp(pkt.time).isoformat() return "[%s] %s" % (datetime_str, pkt.summary()) # offline: 読み込むpcapファイルを指定 # filter: BPF形式でフィルタリングルールを指定 # store: 0を指定することで、読み終わったパケットは捨てられ、逐次的に解析できる # prn: 個々のパケットを引数として関数を呼び出し、その戻り値を標準出力に吐く sniff(offline="test.pcap", filter="icmp", store=0, prn=analyze)