Umarım bu konuya ışık tutar. Gönderen man :
Tcpdump paketleri yakalamayı bitirdiğinde, şu sayıları rapor eder:
yakalanan paketler (bu, tcpdump tarafından alınan ve işlenen paketlerin sayısıdır);
filtre tarafından alınan paketler (bunun anlamı, tcpdump'ı çalıştırdığınız işletim sistemine ve muhtemelen işletim sisteminin yapılandırılma şekline bağlıdır - komut satırında bir filtre belirtilmişse, bazı işletim sistemlerinde paketleri sayar veya filtre ifadesi ile eşleştirildiler ve filtre ifadesi ile eşleşseler bile, tcpdump'ın henüz okumuş ve işleyip işlemediğine bakılmaksızın, diğer işletim sistemlerinde yalnızca tcpdump'ın okumuş olup olmadığına bakılmaksızın sadece filtre ifadesi ile eşleşen paketleri sayar ve bunları henüz işledi ve diğer işletim sistemlerinde yalnızca filtre ifadesi ile eşleşen ve tcpdump tarafından işlenen paketleri sayar);
çekirdek tarafından bırakılan paketler (bu, işletim sistemi bu bilgileri uygulamalara bildirirse, tcpdump'ın çalıştığı işletim sistemindeki paket yakalama mekanizması tarafından, arabellek alanı eksikliği nedeniyle bırakılan paketlerin sayısıdır; değilse, 0 olarak rapor edilecektir).
Ve 2009'dan itibaren aşağıdakileri açıklayan bir posta listesi girişi var :
"Filtre ile alınan paketler" numarası, yapılan ps_recv
çağrıdan gelen numaradır pcap_stats()
; ile BPF , işte bs_recv
numara BIOCGSTATS ioctl
. Bu sayı BPF'ye verilen tüm paketleri içerir; bu paketler hala libpcap tarafından okunmamış bir arabellekte (ve dolayısıyla tcpdump'a teslim edilmemiş) olabilir veya libpcap tarafından okunan ancak henüz tcpdump'a teslim edilmeyen bir arabellekte olabilir. "ele geçirilmiş" olarak bildirilmez.
Belki süreç çok çabuk öldürülür? Ayrıca -c N
, N
paketler yakalandığında tcpdump komutunun çıkmasını söyleyen bir bayrak da vardır .
Sorununuz oldukça özel göründüğünden, doğrudan veya yüzlerce dil bağından birini kullanarak da kullanabilirsinizlibpcap
.
Sorunuza göre, elde ettiğiniz tek şey dosyadaki yakalanan paketler olduğundan, capture.cap
boş olmayan çalışmalara bakabilir ve bunları inceleyebilirsiniz, yani uhm, satırları sayabilir misiniz?
tcpdump -r capture.cap | wc -l
Muhtemelen yakalama dosyasındaki giriş sayısını döndürmek için libpcap kullanmanın daha iyi bir yolu var ...