gpt4 book ai didi

python - 带有显示过滤器的 pyshark 实时捕获

转载 作者:行者123 更新时间:2023-12-01 05:12:02 25 4
gpt4 key购买 nike

我发现了一个不错的 python 模块 pyshark,据我所知,它可以像 tshark 一样使用 bpf 过滤。我实际上正在寻找带有 bpf 过滤和显示过滤的实时捕获选项,以对这些数据执行其他操作并将它们存储到数据库以供以后分析。根据文档 pyshark 可以进行实时捕获,但我不知道如何显示收到的每个数据包并将其发送到文件或数据库数据。我正在运行 IPv6 实验室网络。这是示例 python 脚本:

import pyshark
capture = pyshark.LiveCapture(interface='eth1',bpf_filter="tcp and port 80")
capture.sniff(timeout=20)

超时后,我可以打印时间和纪元时间,但只能打印每个数据包。我看不到包装的其他部分

print capture[1].sniff_time
print capture[1].sniff_timestamp

我希望得到任何帮助和指导来实时捕获每个数据包并将数据发送到数据库

最佳答案

希望这会有所帮助,以 1 秒的超时捕获数据包并检索它们

import pyshark
capture = pyshark.LiveCapture(interface=r'\Device\NPF_{D41D8EE1-2739-4FA1-8873-024D3F68E9E1}',
output_file=r'C:\Temp\samp1.pcap')
capture.sniff(timeout=1)
pkts = [pkt for pkt in capture._packets]
print(len(capture))
capture.close()

但是使用 capture.close() 似乎存在一些异步异常。无论如何,这不会影响我们的代码。输出如下

94

taking long time to close proactor

Task exception was never retrieved

future: <Task finished coro=<_close_async() done, defined at C:\Python34\lib\site-packages\pyshark\capture\capture.py:409> exception=RuntimeError('Set changed size during iteration',)>

Traceback (most recent call last):
File "C:\Python34\lib\site-packages\trollius\tasks.py", line 255, in _step
result = next(coro)
File "C:\Python34\lib\site-packages\pyshark\capture\capture.py", line 411, in _close_async
for process in self.running_processes:

RuntimeError: Set changed size during iteration

Task was destroyed but it is pending!

task: <Task pending coro=<packets_from_tshark() running at C:\Python34\lib\site-packages\pyshark\capture\capture.py:261> wait_for=<Task finished coro=<_close_async() done, defined at C:\Python34\lib\site-packages\pyshark\capture\capture.py:409> exception=RuntimeError('Set changed size during iteration',)>>

Process finished with exit code 0

关于python - 带有显示过滤器的 pyshark 实时捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24013921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com