scapy中有一个rdpcap函数,它读取一个标准pcap文件,返回一个数据包列表(数组),可通过数组下标读取每个数据包。
对一个数据包pkt,首先根据以太网帧头的type字段判断数据包上层协议,ipv4, ipv6, arp。
0×0800 ipv4
0×0806 ARP
0x86DD ipv6
如果是ipv4协议,再进一步判断ip报头中的协议字段proto,分辨icmp, igmp, tcp, udp.
1 ICMP
2 IGMP
6 TCP
17 UDP
备注1:
pkt = pkts[0]
a = IP(str(pkt)) #pkt网络层以上的部分
b = TCP(str(pkt)) #pkt应用层以上的部分
备注2:
ipv6数据包没有进一步分析,用ipv6封装的也有icmpv6, tcp , udp等。
留下评论