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()
|
|||
|
|
|