Maison  >  Article  >  développement back-end  >  golang int vers IP

golang int vers IP

WBOY
WBOYoriginal
2023-05-10 09:38:06850parcourir

Dans Golang, nous avons souvent besoin de convertir une adresse IP de type entier en une adresse IP de type chaîne, ou à l'inverse, de convertir une adresse IP de type chaîne en une adresse IP de type entier.

Golang fournit des fonctions de bibliothèque pratiques pour réaliser cette conversion. La conversion IP du type entier en type chaîne et du type chaîne en type entier peut être effectuée à l'aide des fonctions et méthodes suivantes.

Convertir une adresse IP de type entier en une adresse IP de type chaîne :

func IntToIP(ip uint32) net.IP {
    return net.IPv4(byte(ip>>24), byte(ip>>16), byte(ip>>8), byte(ip))
}

Cette fonction convertit une adresse IP entière non signée (uint32) en une adresse IPv4 et renvoie une structure de type net.IP. Nous pouvons convertir l'adresse IP en type chaîne en utilisant la méthode String().

Exemple d'utilisation :

ip := uint32(3232235876) // 对应IP地址为192.168.1.100
ipAddr := IntToIP(ip)
fmt.Println(ipAddr.String()) // output: "192.168.1.100"

Convertir une adresse IP de type chaîne en une adresse IP de type entier :

func IPToInt(ip net.IP) uint32 {
    return binary.BigEndian.Uint32(ip.To4())
}

Cette fonction accepte une adresse IP (type net.IP) comme paramètre et renvoie le type entier non signé correspondant ( uint32). À l'intérieur de la fonction, nous utilisons la fonction binaire.BigEndian.Uint32() pour convertir l'adresse IPv4 en un entier non signé de 32 bits.

Exemple d'utilisation :

ipStr := "192.168.1.100"
ipAddr := net.ParseIP(ipStr)
ipInt := IPToInt(ipAddr)
fmt.Println(ipInt) // output: 3232235876

Résumé :

Dans cet article, nous avons discuté de la conversion d'une adresse IP de type entier en adresse IP de type chaîne et de la conversion d'une adresse IP de type chaîne en type entier dans la méthode d'adresse IP Golang. Nous avons utilisé le type net.IP et la fonction binaire.BigEndian.Uint32() fournis par Golang pour réaliser cette conversion. Il s'agit d'une opération très courante dans la programmation réseau et la gestion système. Ces fonctions et méthodes peuvent rendre le développement Golang plus pratique et efficace.

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