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

Comment modifier l'adresse IP en langue Go

DDD
Libérer: 2023-06-05 09:41:33
original
1393 Les gens l'ont consulté

Comment modifier l'adresse IP en langage Go : 1. Utilisez l'interface de fonction "net.InterfaceAddrs()" dans la bibliothèque net pour obtenir l'adresse IP locale ; 2. Utilisez la fonction "LinkByName" pour obtenir les informations d'interface réseau ; nommé "eth0". Utilisez ensuite la fonction "ParseAddr" pour analyser la nouvelle adresse IP, puis utilisez la fonction "AddrAdd" pour ajouter la nouvelle IP à l'interface réseau donnée 3. Utilisez la même méthode que le code pour obtenir ; l'adresse IP locale pour vérifier l'adresse IP locale. S'il faut changer.

Comment modifier l'adresse IP en langue Go

L'environnement d'exploitation de ce tutoriel : système Windows 10, passage à la version 1.20, ordinateur Dell g3.

Le langage Go 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, le langage Go fournit quelques API et outils pour faciliter l'opération. Dans cet article, nous présenterons comment modifier l'adresse IP à l'aide du langage Go.

Comment modifier l'adresse IP :

1. Obtenir l'adresse IP locale

Obtenir l'adresse IP locale en langage Go 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.

2. 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.

3. 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 du langage Go. Nous avons d'abord montré comment obtenir l'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!

Étiquettes associées:
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!