Python
scapy

scapy dissect

scapy を使うときは関連するレイヤークラスを読み込んで使うこと。

次の例は scapy.all を使うのでうまく payload まで解析される。

from binascii import a2b_hex as fromhex
from scapy.all import Ether
pkt = Ether(fromhex("0012345678900011223344550800"
 "4500004efd4800004011f1fec0a80505c0a80502ac1f12b5003a00000800000000000500"
 "ffffffffffff0a9d0469b1540806"
 "00010800060400010a9d0469b154c0a80705000000000000c0a80702"))

次の例のように Ether だけで実行すると payload は解析されずに Raw のままになるので注意。

from binascii import a2b_hex as fromhex
from scapy.layers.l2 import Ether
pkt = Ether(fromhex("0012345678900011223344550800"
 "4500004efd4800004011f1fec0a80505c0a80502ac1f12b5003a00000800000000000500"
 "ffffffffffff0a9d0469b1540806"
 "00010800060400010a9d0469b154c0a80705000000000000c0a80702"))