📅  最后修改于: 2023-12-03 15:01:02.300000             🧑  作者: Mango
在Golang中,可以使用net
包中的ParseIP()
函数来检查IP地址是否为IPv6地址。下面是一个示例代码:
package main
import (
"fmt"
"net"
)
func main() {
ip := "2001:db8::1" // IPv6 address
parsedIP := net.ParseIP(ip)
if parsedIP == nil {
fmt.Println("Invalid IP address")
} else if parsedIP.To4() != nil {
fmt.Println("Not an IPv6 address")
} else {
fmt.Println("IPv6 address")
}
}
代码解释:
ip
。ParseIP()
函数解析IP地址,并将结果存储在parsedIP
变量中。parsedIP
为nil
,则表示解析失败,输出“Invalid IP address”。parsedIP
的To4()
方法不为nil
,则表示IP地址为IPv4地址。由于IPv4地址长度为4字节,所以To4()
方法返回nil
表示IPv6地址。因此,输出“Not an IPv6 address”。以上代码的输出应该是“IPv6 address”。
注意:net.ParseIP()
函数也可以用来检查IPv4地址,只需要将IPv4地址作为入参。如果解析成功,返回的IP地址是net.IP
类型。如果解析失败,返回nil
。