Maison > développement back-end > Golang > Comment changer l'adresse IP dans Golang

Comment changer l'adresse IP dans Golang

PHPz
Libérer: 2023-04-24 15:00:24
original
1036 Les gens l'ont consulté

Golang est un langage de programmation hautes performances pris en charge par la concurrence qui fournit de nombreuses bibliothèques de programmation réseau faciles à utiliser. Si vous souhaitez modifier l'adresse IP, Golang fournit des API et des outils pour faciliter l'opération. Dans cet article, nous présenterons comment modifier l'adresse IP à l'aide de Golang.

  1. Obtenir une adresse IP locale

Obtenir une adresse IP locale dans Golang est très simple. Nous pouvons utiliser l'interface de fonction de la bibliothèque net pour obtenir l'adresse IP locale. Voici un exemple de code pour obtenir l'adresse IP locale :

    addrs, err := net.InterfaceAddrs()
    if err != nil {
        fmt.Println("Error:", err)
    }
    for _, addr := range addrs {
        if ipnet, ok := addr.(*net.IPNet); ok && !ipnet.IP.IsLoopback() {
            if ipnet.IP.To4() != nil {
                fmt.Println("Local IP: ", ipnet.IP.String())
            }
        }
    }
Copier après la connexion

Dans cet extrait de code, nous utilisons l'interface de fonction net.InterfaceAddrs() dans la bibliothèque net pour obtenir l'adresse IP locale. Cette fonction renvoie un tableau stockant les adresses IP. Utilisez une boucle pour parcourir le tableau d'adresses IP, filtrez les adresses IP qui ne sont pas des adresses IPv4 et qui ne sont pas des adresses de bouclage, et enfin imprimez l'adresse IP locale.

  1. Modifier l'adresse IP locale

Pour modifier l'adresse IP locale, nous devons utiliser la bibliothèque netlink. Netlink est une famille de protocoles utilisée pour la communication inter-processus dans le noyau Linux. Elle est principalement utilisée pour la communication entre le noyau et les programmes de l'espace utilisateur. La bibliothèque Netlink fournit un ensemble de fonctions et de structures qui nous permettent de gérer et de contrôler plus facilement les interfaces réseau.

Ce qui suit est un exemple de code pour modifier l'adresse IP locale à l'aide de la bibliothèque netlink :

    link, err := netlink.LinkByName("eth0")
    if err != nil {
        panic(err)
    }

    addr, err := netlink.ParseAddr("192.168.0.2/24")
    if err != nil {
        panic(err)
    }

    if err := netlink.AddrAdd(link, addr); err != nil {
        panic(err)
    }
Copier après la connexion

Dans cet extrait de code, nous utilisons d'abord la fonction LinkByName pour obtenir les informations d'interface réseau nommées "eth0". Ensuite, nous utilisons la fonction ParseAddr pour analyser la nouvelle adresse IP, puis utilisons la fonction AddrAdd pour ajouter la nouvelle adresse IP à l'interface réseau donnée.

  1. Vérifiez si l'adresse IP locale a changé

Après avoir modifié l'adresse IP locale, nous pouvons réexécuter le code pour vérifier si le changement a réussi. En utilisant la même méthode que le code pour obtenir l'adresse IP locale, nous pouvons vérifier si l'adresse IP locale a changé pour la nouvelle adresse IP que nous avons spécifiée. L'exemple de code final est le suivant :

package main

import (
    "fmt"
    "github.com/vishvananda/netlink"
    "net"
)

func main() {

    addrs, err := net.InterfaceAddrs()
    if err != nil {
        fmt.Println("Error:", err)
    }
    for _, addr := range addrs {
        if ipnet, ok := addr.(*net.IPNet); ok && !ipnet.IP.IsLoopback() {
            if ipnet.IP.To4() != nil {
                fmt.Println("Local IP: ", ipnet.IP.String())
            }
        }
    }

    link, err := netlink.LinkByName("eth0")
    if err != nil {
        panic(err)
    }

    addr, err := netlink.ParseAddr("192.168.0.2/24")
    if err != nil {
        panic(err)
    }

    if err := netlink.AddrAdd(link, addr); err != nil {
        panic(err)
    }

    addrs, err = net.InterfaceAddrs()
    if err != nil {
        fmt.Println("Error:", err)
    }
    for _, addr := range addrs {
        if ipnet, ok := addr.(*net.IPNet); ok && !ipnet.IP.IsLoopback() {
            if ipnet.IP.To4() != nil {
                fmt.Println("Local IP: ", ipnet.IP.String())
            }
        }
    }
}
Copier après la connexion

Cet extrait de code imprime deux adresses IP locales. La première est l'adresse IP locale d'origine et la seconde est la nouvelle adresse IP locale imprimée après modification de l'adresse IP locale. De cette façon, nous pouvons vérifier si l'adresse IP locale a été modifiée avec succès.

Résumé

Dans cet article, nous avons présenté comment modifier l'adresse IP locale à l'aide de Golang. Nous avons d'abord montré comment obtenir une adresse IP locale, puis présenté comment utiliser la bibliothèque netlink pour modifier l'adresse IP locale. Enfin, nous avons montré comment vérifier si l'adresse IP locale a été modifiée avec succès. J'espère que cet article vous sera utile.

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