1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
package main
import (
"log"
"time"
"github.com/google/gopacket"
"github.com/google/gopacket/pcap"
)
var (
device string = "\\Device\\NPF_{38666D5D-CD5B-419A-9661-617C5CE74237}"
//device string = "\\Device\\NPF_Loopback"
snapshotLen int32 = 65536
promiscuous bool = true
err error
timeout time.Duration = 10 * time.Second
handle *pcap.Handle
)
func main() {
// **************************************************
/*
// Affiche la liste des inerfaces
// Find all devices
devices, err := pcap.FindAllDevs()
if err != nil {
log.Fatal(err)
}
// Print device information
log.Println("Devices found:")
for _, deviceLoc := range devices {
log.Println("Name: ", deviceLoc.Name)
log.Println("Description: ", deviceLoc.Description)
log.Println("Devices addresses: ", deviceLoc.Description)
for _, address := range deviceLoc.Addresses {
log.Println("- IP address: ", address.IP)
log.Println("- Subnet mask: ", address.Netmask)
}
}
//*/
// **************************************************
// Open device
log.Println("Open Network Interface : ", device)
handle, err = pcap.OpenLive(device, snapshotLen, promiscuous, timeout)
if err != nil {
log.Fatal(err)
}
defer handle.Close()
// **************************************************
// Capture les paquets
log.Println("Capture packets...")
packetSource := gopacket.NewPacketSource(handle, handle.LinkType())
log.Println("Capture packets [END]")
for packet := range packetSource.Packets() {
// Process packet here
log.Println("Packets processing...")
log.Println(packet)
}
log.Println("Packets processing [END]")
log.Println("Programm [END]")
} |
Partager