@sch에서 영감을 얻은 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
파일 이름은 다음과 같습니다. stream number__time__source IP__port__destination IP__port.pcap
tr -d '\r'
Windows의 tshark는 CR LF를 출력하므로 Windows 사용자를위한 것입니다.
편집 :
tshark가있는이 솔루션은 너무 느리지 만 확실합니다. SplitCap은 빠르지 만 일부 패킷에 오류가 있으면 충돌이 발생하지만 tshark는 오류에 대해서만 알려주지 만 계속 진행하십시오.
tshark: The file "cap.pcap" appears to have been cut short in the middle of a packet.
마지막으로 PcapSplitter가 빠르지 만 winpcap 드라이버가 필요합니다 .Windows의 npcap 드라이버와 작동하지 않습니다.
사용 : 그러나 SplitCap에 대한 해결책이 pcapfix을 SplitCap 다시 충돌하지 그럼 난 손상된 패킷을 해결할 수는. 그리고 이것은 tshark가 분할 속도가 너무 느리기 때문에 지금 사용하고 있습니다.
PcapSplitter에 대한 해결책은 어떤 방법을 사용하여 winpcap dll을 주입하는 것이지만 SplitCap이있는 동안 왜 그렇게합니까?