Maison > Article > développement back-end > Comment puis-je utiliser Raw Sockets dans Go pour personnaliser les découvertes DHCP avec de fausses adresses IP sources ?
Afin de recevoir et de transférer des découvertes DHCP avec des adresses IP sources personnalisées, envisagez d'utiliser Raw Sockets in Go. Les Raw Sockets permettent de contrôler les en-têtes de paquets, vous permettant de falsifier des paquets avec des adresses IP sources spécifiques.
Notez que la falsification d'adresses IP sources peut présenter des risques de sécurité. Il est essentiel d'exécuter votre application avec les privilèges root ou de lui accorder la capacité CAP_NET_RAW (via setcap) pour un fonctionnement correct.
La bibliothèque nette standard de Go ne prend pas en charge les sockets bruts car elle est spécialisée et peut subir des changements d'API. Cependant, le sous-référentiel go.net propose des packages ipv4 et ipv6, le premier étant adapté à vos besoins. Consultez http://godoc.org/code.google.com/p/go.net/ipv4#NewRawConn pour plus de détails.
Utilisez la méthode ReadFrom d'ipv4.RawConn pour obtenir les paquets sources. Vous pouvez ensuite utiliser ces champs, ainsi que votre logique GIADDR, pour configurer les en-têtes des appels WriteTo. Voici un extrait de code illustratif :
for { hdr, payload, _, err := conn.ReadFrom(buf) if err != nil { ... } hdr.ID = 0 hdr.Checksum = 0 hdr.Src = ... hdr.Dst = ... if err := conn.WriteTo(hdr, payload, nil); err != nil { ... } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!