gopacket 是一个在 Go 语言中用于网络包解析和分析的库。它允许你捕获网络流量,解析网络层(如 IP、TCP、UDP 等)和应用层协议(如 HTTP、DNS 等)的数据包。在 gopacket 中,Packet 类型代表了一个完整的网络数据包,而 Layer 类型则代表了这个数据包中的一个单独的层(如 IP 层、TCP 层等)。
ICMPv4结构体解析:
type ICMPv4 struct {
BaseLayer //含有PayLoad和Contents变量
TypeCode ICMPv4TypeCode
Checksum uint16
Id uint16
Seq uint16
}
package main
import (
"fmt"
"github.com/google/gopacket"
"github.com/google/gopacket/layers"
"github.com/google/gopacket/pcap"
)
func main() {
//handle, err := pcap.OpenLive("any", 1600, true, pcap.BlockForever) //监听本地any网卡
handle, _ := pcap.OpenOffline("icmp_onvif_111_207.pcap") //打开pcap文件
defer handle.Close()
packetSource := gopacket.NewPacketSource(
handle,
handle.LinkType(),
)
handle.SetBPFFilter("icmp or tcp") //设置过滤条件,只解析

最低0.47元/天 解锁文章
2061

被折叠的 条评论
为什么被折叠?



