使用tshark进行网络流量包枚举

时间:2017-01-19 12:51:59

标签: networking wireshark pcap tshark

虽然听起来很简单,但我找不到答案..

我只需要枚举某个pcap文件中的某些数据包(使用tshark)。 例如。: ipv6.ack有多少包? udp包的数量是多少?

和tshark必须打印一个数字......

1 个答案:

答案 0 :(得分:0)

您可以使用-z io,stat,0选项,例如:

tshark -r capture.pcap -q -z io,stat,0,"udp"

...但是这会产生一个IO Statistics表,而不是一个数字。

如果您可以使用wcgrepcut等工具,则可以尝试以下一种或多种解决方案:

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