33 lines
941 B
Python
33 lines
941 B
Python
# Name:fang xiaoyu
|
||
# Time: 2023/3/11 11:40
|
||
import os
|
||
import dpkt
|
||
import pcapy
|
||
|
||
# 指定要合并的文件夹路径和合并后的文件名
|
||
folder_path = "/path/to/folder"
|
||
merged_file = "merged.pcap"
|
||
|
||
# 获取文件夹内所有的pcap文件
|
||
pcap_files = [f for f in os.listdir(folder_path) if f.endswith('.pcap')]
|
||
|
||
# 打开第一个pcap文件,读取第一个数据包的时间戳
|
||
reader = pcapy.open_offline(os.path.join(folder_path, pcap_files[0]))
|
||
pcap = dpkt.pcap.Reader(reader)
|
||
_, ts = next(pcap)
|
||
|
||
# 创建一个新的pcap文件并写入第一个数据包
|
||
writer = dpkt.pcap.Writer(open(merged_file, 'wb'))
|
||
writer.writepkt(_, ts)
|
||
|
||
# 依次读取每个pcap文件的数据包并写入到新的pcap文件中
|
||
for pcap_file in pcap_files:
|
||
reader = pcapy.open_offline(os.path.join(folder_path, pcap_file))
|
||
pcap = dpkt.pcap.Reader(reader)
|
||
for ts, buf in pcap:
|
||
writer.writepkt(buf, ts)
|
||
|
||
# 关闭文件句柄
|
||
writer.close()
|
||
|