登录
首页 >  Golang >  Go问答

Go语言:如何在数据包中删除数据链路层信息?

来源:stackoverflow

时间:2024-02-16 13:09:19 390浏览 收藏

golang学习网今天将给大家带来《Go语言:如何在数据包中删除数据链路层信息?》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到等等知识点,如果你是正在学习Golang或者已经是大佬级别了,都非常欢迎也希望大家都能给我建议评论哈~希望能帮助到大家!

问题内容

我正在使用 gopacket 库,并且我从线路中读取数据包。现在,我读取的所有数据包都包含四个层:链路、网络、传输和应用程序数据。

我需要从所有数据包中删除链路层并将其余部分保存到文件中。尚未找到任何有关正确处理数据包剥离部分的信息或文档。

有人知道怎么做吗?


正确答案


我找到了一种可能的方法 - 连接必要数据包层中的字节:

// `packet` variable contains four layers including the Link layer 
packet := <-packetSource.Packets()

var packetData []byte
packetData = append(packetData, packet.NetworkLayer().LayerContents()...)
packetData = append(packetData, packet.TransportLayer().LayerContents()...)
packetData = append(packetData, packet.ApplicationLayer().LayerContents()...)

// The `packetData` variable is a []bytes representation of all layers 
// except the Link layer, and it might be written to a *.pcap file.

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《Go语言:如何在数据包中删除数据链路层信息?》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>