Maison >développement back-end >Golang >nom d'hôte Golang vers IP

nom d'hôte Golang vers IP

WBOY
WBOYoriginal
2023-05-10 12:17:07973parcourir

golang hostname to ip

Dans la communication réseau, nous avons souvent besoin d'obtenir l'adresse IP correspondante via le nom de domaine pour la communication. Dans Golang, l'obtention de l'adresse IP peut être obtenue en résolvant le nom d'hôte ou le nom de domaine.

Le package net de Golang fournit certaines fonctions pour obtenir des adresses IP, y compris des fonctions de résolution des noms d'hôte. Avec la fonction net.LookupHost, nous pouvons convertir un nom d'hôte en plusieurs adresses IPv4 ou IPv6. L'exemple de code est le suivant :

package main

import (
    "fmt"
    "net"
)

func main() {
    // 通过主机名解析IP地址
    addresses, err := net.LookupHost("example.com")
    if err != nil {
        fmt.Println("解析错误:", err.Error())
        return
    }

    // 打印解析到的IP地址
    for _, address := range addresses {
        fmt.Println(address)
    }
}

Lorsque le code est exécuté, toutes les adresses IPv4 et IPv6 correspondant à example.com seront affichées. Il convient de noter que puisqu'un nom d'hôte peut correspondre à plusieurs adresses, une tranche d'adresse est renvoyée.

Si nous voulons uniquement obtenir l'adresse IPv4 ou IPv6, nous pouvons utiliser la fonction net.LookupIP. Cette fonction renvoie une tranche IP où chaque adresse IP est un type de structure distinct. L'exemple de code est le suivant :

package main

import (
    "fmt"
    "net"
)

func main() {
    // 通过主机名解析IPv6地址
    ips, err := net.LookupIP("ipv6.google.com")
    if err != nil {
        fmt.Println("解析错误:", err.Error())
        return
    }

    // 打印解析到的IPv6地址
    for _, ip := range ips {
        if ip.To4() == nil {
            fmt.Println(ip)
        }
    }
}

Lorsque le code est exécuté, toutes les adresses IPv6 correspondant à ipv6.google.com seront affichées. Ce qu'il faut noter, c'est la méthode permettant de juger si l'adresse IP est IPv6 via ip.To4() == nil.

Dans le développement réel, nous avons dû rencontrer le besoin d'obtenir l'IP via le nom d'hôte. Le package net fourni dans Golang fournit une fonction très efficace et pratique pour faciliter la communication réseau.

En général, la méthode d'obtention d'une adresse IP dans Golang est relativement simple. Tant que nous approfondirons notre compréhension du package net et que nous le combinerons avec les besoins réels, nous pourrons bien utiliser cette fonction dans le projet.

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!

Déclaration:
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