package describer import ( "eruhs/core/parser" "strings" ) type EthernetDescriber struct { Eth *parser.Ethernet } func (e *EthernetDescriber) GetHeader() []byte { return e.Eth.Header } func (e *EthernetDescriber) GetDetailDescribe() Describe { protoName := "ETH" switch e.Eth.Type { case parser.EthernetTypeIPv4: protoName = "IPv4" case parser.EthernetTypeIPv6: protoName = "IPv6" case parser.LayerTypeARP: protoName = "ARP" default: } return Describe{ 1: {"源地址", strings.ToUpper(e.Eth.Source.String())}, 2: {"目的地址", strings.ToUpper(e.Eth.Destination.String())}, 3: {"网络层协议类型", protoName}, } }