terinspirasi oleh @sch di sini adalah versi bash:
file=cap.pcap
$tshark -Tfields -e tcp.stream \
-e frame.time_epoch \
-e ip.src \
-e tcp.srcport \
-e ip.dst \
-e tcp.dstport -r $file |
sort -snu |
while read -a f; do
[[ "${f[5]}" ]] || continue # sometimes there is no stream number ex. UDP
fileout=$(echo ${f[0]}__${f[1]}__${f[2]}__${f[3]}__${f[4]}__${f[5]} | tr -d '\r' )
$tshark -r $file -2R "tcp.stream == ${f[0]}" -w "$fileout.pcap"
done
read
nama file akan seperti itu: stream number__time__source IP__port__destination IP__port.pcap
tr -d '\r'
adalah untuk pengguna windows, karena tshark di windows menghasilkan CR LF.
Edit :
solusi dengan tshark ini sangat lambat tapi pasti. SplitCap sangat cepat tetapi ketika ada kesalahan dalam beberapa paket itu crash, sementara tshark hanya memberi tahu Anda tentang kesalahan tetapi melanjutkan:
tshark: The file "cap.pcap" appears to have been cut short in the middle of a packet.
dan akhirnya ada PcapSplitter yang super cepat juga tetapi membutuhkan driver winpcap, itu tidak bekerja dengan driver npcap di windows.
Tetapi ada solusi untuk SplitCap: menggunakan pcapfix saya dapat memperbaiki paket yang rusak maka SplitCap tidak pernah crash lagi. dan inilah yang saya gunakan sekarang, karena tshark sangat lambat dalam pemisahan.
dan solusi untuk PcapSplitter yang saya lakukan adalah menyuntikkan dll winpcap menggunakan metode apa pun tetapi sementara kami memiliki SplitCap mengapa melakukannya?