// Copyright 2012 Google, Inc. All rights reserved. // // Use of this source code is governed by a BSD-style license // that can be found in the LICENSE file in the root of the source // tree. // +build linux,go1.7 package pcapgo_test import ( "log" "os" "github.com/google/gopacket" "github.com/google/gopacket/layers" "github.com/google/gopacket/pcapgo" ) func Example_captureEthernet() { f, err := os.Create("/tmp/lo.pcap") if err != nil { log.Fatal(err) } defer f.Close() pcapw := pcapgo.NewWriter(f) if err := pcapw.WriteFileHeader(1600, layers.LinkTypeEthernet); err != nil { log.Fatalf("WriteFileHeader: %v", err) } handle, err := pcapgo.NewEthernetHandle("lo") if err != nil { log.Fatalf("OpenEthernet: %v", err) } pkgsrc := gopacket.NewPacketSource(handle, layers.LayerTypeEthernet) for packet := range pkgsrc.Packets() { if err := pcapw.WritePacket(packet.Metadata().CaptureInfo, packet.Data()); err != nil { log.Fatalf("pcap.WritePacket(): %v", err) } } }