昨天试验了 NgWriter 和 普通 Writer ,NgWriter 格式处理起来注意事项较多,极易出错,此处使用普通 Writer 给出说明。
首先打开文件
1 fileName := pcapDataConfigs.RecordFileNamePrefix + "-" + time.Now().Format("2006-01-02_15:04:05.999Z07") + ".pcap" 2 f, err := os.Create(fileName) 3 if err != nil { 4 logger.Fatalln("Can not create pcapng for file name: ", fileName) 5 }
然后打开写入句柄
1 r := pcapgo.NewWriter(outputPcapFile)
若该文件为新文件,则在创建句柄之后,写入任何数据报文数据之前,必须先写入头信息
1 r.WriteFileHeader(uint32(handle.SnapLen()*1), handle.LinkType())
最后根据需要写入数据报文
1 e := outputPcapHandler.WritePacket( 2 packet.Metadata().CaptureInfo, 3 packet.Data(), 4 ) 5 if e != nil { 6 logger.Error("write packet to output file error ", e) 7 }
然后,该文件即可使用比如Wireshark等工具打开进行分析
标签:文件,句柄,gopacket,写入,packet,fileName,初探 From: https://www.cnblogs.com/oilamp/p/16731011.html