/pktdump

Format gopacket.Packet network packets similar to the tcpdump CLI output

Primary LanguageGoMIT LicenseMIT

pktdump

CircleCI GoDoc Go Report Card Codecov

Format gopacket.Packet network packets similar to the tcpdump CLI output

example

package pktdump_test

import (
	"fmt"

	"github.com/google/gopacket"
	"github.com/google/gopacket/layers"

	"github.com/x-way/pktdump"
)

func ExampleFormat() {
	raw := []byte{0x45, 0x00, 0x00, 0x42, 0x9a, 0x66, 0x00, 0x00, 0x40, 0x11, 0xce, 0xc0, 0xc0, 0xa8, 0x48, 0x32, 0xc0, 0xa8, 0x48, 0x01, 0xfb, 0x6a, 0x00, 0x35, 0x00, 0x2e, 0x02, 0xeb, 0x29, 0x84, 0x01, 0x20, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x73, 0x69, 0x67, 0x69, 0x6e, 0x74, 0x02, 0x63, 0x68, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x29, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}

	packet := gopacket.NewPacket(raw, layers.LayerTypeIPv4, gopacket.Default)

	fmt.Println(pktdump.Format(packet))
}

This would produce the following result

IP 192.168.72.50.64362 > 192.168.72.1.53: 10628+ [1au] A CH? sigint.ch. (38)