使用scapy和python在keyboardInterrupt之后将嗅探的数据包保存到变量或文件中

时间:2017-06-28 14:48:22

标签: python-3.x exception save scapy sniffing

有人可以帮助我使用scapy将嗅探包保存到文件中吗?我需要使用scapy来嗅探直到使用keyboardInter并将嗅探的数据包保存到pcap文件中,问题是keyboardInterrupt会使嗅探的数据包消失,所以有没有办法在嗅探时保存数据包?或者将它们保存到变量中,即使存在异常?

这是我到目前为止所尝试的但是这个例子阻止它被保存:

from scapy.all import *
try:
    packets = sniff()
except KeyboardInterrupt as ki:
    pass

1 个答案:

答案 0 :(得分:0)

也许你可以使用函数存储它们

from scapy.all import *

packet_list = []

def storepkt(pkt):
    packet_list.append(pkt)


try:
    sniff(ptr=storepkt)
except KeyboardInterrupt as ki:
    #Here you should have access to the packet_list list and do whatever you need with them, i.e.:
    for pkt in packet_list:
        pkt.show()

请注意,此代码适用于Python 2.7。