Maison > développement back-end > Golang > le corps du texte

Comment définir une adresse IP statique dans Golang

PHPz
Libérer: 2023-03-30 09:47:11
original
1358 Les gens l'ont consulté

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.

  1. Obtenez le nom de l'interface de la carte réseau

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)
    }
}
Copier après la connexion

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
Copier après la connexion
  1. Définissez une adresse IP statique

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)
}
Copier après la connexion

Après avoir exécuté le code ci-dessus, une adresse IP statique sera défini pour la carte réseau en0.

  1. Vérifiez si l'adresse IP est définie avec succès

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])
        }
    }
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal