Le langage Go (golang) est un langage de programmation open source qui peut fonctionner sur différents systèmes d'exploitation. Lors de la programmation réseau, l'une des étapes essentielles consiste à définir une adresse IP statique, ce qui peut améliorer la stabilité et la sécurité de la communication réseau. Cet article explique comment définir une adresse IP statique dans Golang.
Lorsque vous utilisez Golang dans la programmation réseau, vous devez obtenir le nom de l'interface de la carte réseau. Tout d’abord, vous devez importer le package net et utiliser la fonction net.Interfaces() pour obtenir des informations sur le périphérique. Ensuite, parcourez les appareils et obtenez le nom de l'appareil comme suit :
package main import ( "fmt" "net" ) func main() { ifs, err := net.Interfaces() if err != nil { fmt.Println("Error: ", err) } for _, i := range ifs { fmt.Println(i.Name) } }
Après avoir exécuté le code ci-dessus, tous les noms d'interface de carte réseau disponibles sur l'ordinateur seront affichés, par exemple :
en0 en1 lo0
Définir dans golang Les adresses IP statiques nécessitent l'utilisation de la bibliothèque netlink dans le package net, qui fournit une méthode pour définir l'adresse IP de la carte réseau. Vous devez importer la bibliothèque netlink, puis utiliser la fonction SetLinkIP pour définir l'adresse IP. Par exemple, nous pouvons définir l'adresse IP sur 192.168.0.100, le masque sur 255.255.255.0 et la passerelle sur 192.168.0.1. Le code est le suivant :
package main import ( "fmt" "net" "github.com/vishvananda/netlink" ) func main() { link, err := netlink.LinkByName("en0") if err != nil { fmt.Println("Error: ", err) } addr, err := netlink.ParseAddr("192.168.0.100/24") if err != nil { fmt.Println("Error: ", err) } netlink.AddrReplace(link, addr) route := netlink.Route{ LinkIndex: link.Attrs().Index, Gw: net.ParseIP("192.168.0.1"), } netlink.RouteReplace(&route) }
Après avoir exécuté le code ci-dessus, une adresse IP statique sera défini pour la carte réseau en0.
Utilisez le programme golang pour vérifier si l'adresse IP est définie avec succès. Vous pouvez afficher l'adresse IP de l'appareil en exécutant la commande système ifconfig. Le code suivant montre comment exécuter ifconfig pour obtenir l'adresse IP de la carte réseau spécifiée :
package main import ( "fmt" "os/exec" "strings" ) func main() { cmd := exec.Command("ifconfig", "en0") data, err := cmd.Output() if err != nil { fmt.Println("Error: ", err) } output := string(data) scanner := bufio.NewScanner(strings.NewReader(output)) for scanner.Scan() { line := scanner.Text() if strings.Contains(line, "inet ") { fields := strings.Fields(line) fmt.Println("IP address: ", fields[1]) } } }
Après avoir exécuté le code ci-dessus, l'adresse IP de la carte réseau en0 de l'ordinateur sera affichée.
Résumé : En utilisant le package net et la bibliothèque netlink dans Golang, nous pouvons facilement définir l'adresse IP statique de la carte réseau, améliorant ainsi la fiabilité et la sécurité de l'application.
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!