我想在后台运行pyshark,这样在它运行时,我仍然能够执行一些web操作并捕获它们。 一个强制性条件是,我必须能够使用tshark进行解析,因为我有一些专有的Wireshark解析器
基本上我需要做的是:
我不能按原样使用capture.sniff(),因为它在阻塞模式下工作,也不能连续使用capture.sniff\u(),因为它是一个生成器
问题: 我尝试从线程调用sniff(),然后等待它以join()结束。 但是当我到达迭代器时,tshark.exe会重新启动并覆盖捕获文件:
print('Background sniffing:')
capture = pyshark.LiveCapture(interface='Ethernet', bpf_filter='host 10.20.30.40', output_file='bg_capture.pcapng')
t = threading.Thread(target=capture.sniff, kwargs={'timeout': 30, 'packet_count': 5000}, daemon=True)
t.start()
print('Do some stuff web action here...')
t.join()
print('Done sniffing')
for p in capture: # At this point, tshark re-launch itself
print(f'Packet number {p.number}')
目前没有回答
相关问题 更多 >
编程相关推荐