python提取数据包中的文件_分享一个使用python的scapy包来提取pcap文件中TCP数据包的标志位的代码...

如题所述,分享一个使用python的scapy包来提取pcap文件中TCP包的标志位的代码。

from scapy.all import *

FIN = 0x01

SYN = 0x02

RST = 0x04

PSH = 0x08

ACK = 0x10

URG = 0x20

ECE = 0x40

CWR = 0x80

caida = "/home/zongyi/traces/CAIDA.equinix-nyc.dirA.20180315-125910.UTC.anon.pcap"

limit = 5000

count = 0

def func(pkt):

global count, limit

srcip, dstip, proto, sport, dport = None, None, None, None, None

if pkt.haslayer(IP):

srcip = pkt[IP].src

dstip = pkt[IP].dst

proto = pkt[IP].proto

if pkt.haslayer(TCP):

sport = pkt[TCP].sport

dport = pkt[TCP].dport

if pkt[TCP].flags & FIN:

print count, "FIN flag is activated"

if pkt[TCP].flags & RST:

print count, "RST flag is activated"

if pkt[TCP].flags & SYN:

print count, "SYN flag is activated"

elif pkt.haslayer(UDP):

sport = pkt[UDP].sport

dport = pkt[UDP].dport

if srcip and dstip and proto and sport and dport:

count = count + 1

if limit > 0 and count >= limit:

return True

else:

return False

def parse(trace, n_pkts = -1):

global limit, count

limit = n_pkts

count = 0

sniff(offline=trace, stop_filter=func, store=False)

parse(caida, 5000)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值