我在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吗?
当前版本: Tshark: 3.2.4 Python: 3.7.3 Pyshark: 0.4.2.9
发布于 2020-06-06 07:29:40
我正在查看the implementation file,它在评论中写道:
:param custom_parameters:要传递给tshark的自定义参数的dict,即{"--param": "value"}
所以我会尝试:
params = {'-e': 'ip.src', '-e': 'ip.dst'}发布于 2021-05-04 17:08:59
您可以将列表传递给custom_parameters。例如:
custom_params_list = ["-o", "tcp.check_checksum:TRUE",
"-o", "ip.check_checksum:TRUE",
"-o", "stt.check_checksum:TRUE",
"-o", "udp.check_checksum:TRUE",
"-o", "wlan.check_checksum:TRUE"]
packet_list = pyshark.FileCapture("temp.pcap", custom_parameters=custom_params_list)https://stackoverflow.com/questions/62224603
复制相似问题