from scapy.layers.http import *
from scapy.sessions import TCPSession
from scapy.sendrecv import sniff
plist = []
def func(pkt):
# called on each packet
if HTTP in pkt:
if HTTPResponse in pkt:
# status codes are only in responses
status = pkt[HTTPResponse].Status_Code
if int(status) in [403, 429]: # check code
plist.append(pkt)
sniff(offline="./my_file.pcap", prn=func, store=False, session=TCPSession)
如果您使用scapy2.4.3+,您可以启用HTTP插件并简化代码。请参见:
另外,为了使用
TCPSession
自动处理HTTP数据包,我将使用sniff(prn=)
而不是PcapReader
。他们做同样的事。你知道吗相关问题 更多 >
编程相关推荐