虽然听起来很简单,但我找不到答案..
我只需要枚举某个pcap文件中的某些数据包(使用tshark)。 例如。: ipv6.ack有多少包? udp包的数量是多少?
和tshark必须打印一个数字......
答案 0 :(得分:0)
您可以使用-z io,stat,0
选项,例如:
tshark -r capture.pcap -q -z io,stat,0,"udp"
...但是这会产生一个IO Statistics表,而不是一个数字。
如果您可以使用wc
,grep
和cut
等工具,则可以尝试以下一种或多种解决方案:
tshark -r capture.pcap -q -z io,stat,0,"udp" | grep "<>" | cut -d ' ' -f 8
tshark -r capture.pcap -Y "udp" | wc -l
如果您使用的是Windows,并且没有这些工具,则可以尝试将其包装在批处理文件中,例如:
@ECHO OFF
SETLOCAL
SETLOCAL ENABLEEXTENSIONS
SETLOCAL ENABLEDELAYEDEXPANSION
IF "%1" == "" GOTO :USAGE
IF "%2" == "" (
SET TSHARK_CMD=tshark.exe -r %1 -z io,stat,0
) ELSE (
SET TSHARK_CMD=tshark.exe -r %1 -z io,stat,0,"%2"
)
FOR /F "TOKENS=6 DELIMS= " %%A in ('!TSHARK_CMD! ^| FINDSTR "^<^>"') DO (
ECHO %%A
)
GOTO :END
:USAGE
ECHO usage: printframes ^<file^> ^[filter^]
ENDLOCAL
:END