如何在pyshark中指定字段?

问题描述 投票:0回答:1

当我认为结果应该相同时,我在Tshark和Pyshark中得到不同的结果。

使用Tshark时,很容易通过使用“ -e(字段名称)”来指定所需的字段。 Pyshark有一个选项可以指定自定义参数并将其传递给Tshark,但是调试输出一直在说tshark正在获取无效字段。我当前的代码如下:

filename='./pcaps/SSHv2.pcap'
params = ['-e ip.src', '-e ip.dst']
pcap = pyshark.FileCapture(filename, display_filter="ssh", custom_parameters=params, debug=True)

这将产生此调试输出:

020-06-05 14:18:02,288 - FileCapture - DEBUG - Creating TShark subprocess with parameters: /Applications/Wireshark.app/Contents/MacOS/tshark -l -n -T pdml -Y ssh -e ip.src -e ip.dst -r ./pcaps/SSHv2.pcap
2020-06-05 14:18:02,288 - FileCapture - DEBUG - Executable: /Applications/Wireshark.app/Contents/MacOS/tshark
2020-06-05 14:18:02,291 - FileCapture - DEBUG - TShark subprocess created
tshark: Some fields aren't valid:
         ip.dst
         ip.src
2020-06-05 14:18:03,213 - FileCapture - DEBUG - EOF reached (sync)
pyshark.capture.capture.TSharkCrashException: TShark seems to have crashed (retcode: 1). Try rerunning in debug mode [ capture_obj.set_debug() ] or try updating tshark.

[当接受pyshark的确切命令时(如其调试输出中所述)并在同一目录中的命令行上运行时,tshark可以工作,而且我能够获得所需的确切信息。我在正确的轨道上吗?我应该获得自定义字段吗? pyshark是否允许以这种方式使用-e?

当前版本:特沙克:3.2.4的Python:3.7.3皮沙克:0.4.2.9

python tshark pyshark
1个回答
0
投票

我正在查看the implementation file,并在评论中说:

:param custom_parameters:传递给自定义参数的dict tshark,即{"--param": "value"}

所以我会尝试:

params = {'-e': 'ip.src', '-e': 'ip.dst'}
© www.soinside.com 2019 - 2024. All rights reserved.