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"))