>  기사  >  백엔드 개발  >  golang int를 IP로

golang int를 IP로

WBOY
WBOY원래의
2023-05-10 09:38:06797검색

Golang에서는 정수형 IP 주소를 문자열형 IP 주소로 변환하거나, 반대로 문자열형 IP 주소를 정수형 IP 주소로 변환해야 하는 경우가 많습니다.

Golang은 이러한 변환을 달성하기 위해 편리한 라이브러리 기능을 제공합니다. 정수형에서 문자열형으로, 문자열형에서 정수형으로의 IP 변환은 다음과 같은 함수와 메소드를 이용하여 완료할 수 있습니다.

정수형 IP 주소를 문자열 유형 IP 주소로 변환:

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

이 함수는 부호 없는 정수 IP 주소(uint32)를 IPv4 주소로 변환하고 net.IP 유형 구조를 반환합니다. String() 메소드를 사용하여 IP 주소를 문자열 유형으로 변환할 수 있습니다.

사용 예:

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

문자열 유형 IP 주소를 정수 유형 IP 주소로 변환:

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

이 함수는 IP 주소(net.IP 유형)를 매개변수로 받아들이고 해당하는 부호 없는 정수 유형(uint32)을 반환합니다. 함수 내에서는 Binary.BigEndian.Uint32() 함수를 사용하여 IPv4 주소를 32비트 부호 없는 정수로 변환합니다.

사용예:

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

요약:

이 게시물에서는 Golang IP 주소 방식에서 정수형 IP 주소를 문자열 유형 IP 주소로 변환하고 문자열 유형 IP 주소를 정수형으로 변환하는 방법에 대해 논의했습니다. 이 변환을 수행하기 위해 Golang에서 제공하는 net.IP 유형과 binary.BigEndian.Uint32() 함수를 사용했습니다. 이는 네트워크 프로그래밍 및 시스템 관리에서 매우 일반적인 작업으로, 이러한 기능과 방법을 사용하면 Golang 개발을 더욱 편리하고 효율적으로 만들 수 있습니다.

위 내용은 golang int를 IP로의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.