Bonjour,

J'ai le code suivant pour capturer des paquets Ethernet
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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]")
}
... mais la ligne "Packets processing..." ne s'affiche pas : a priori, le programme se bloque à la ligne for packet := range packetSource.Packets()

Je ne vois pas d'où peut venir le problème. Avez-vous une idée ?
L'interface sélectionnée est a priori la bonne car j'arrive à envoyer des paquets avec gopackets

Merci d'avance,