在Go语言中,可以使用net.ParseIP()
函数来解析给定的IP地址,并通过返回值判断是IPv4还是IPv6。
示例代码如下:
package main
import (
"fmt"
"net"
)
func main() {
ip := "192.168.0.1"
parsedIP := net.ParseIP(ip)
if parsedIP == nil {
fmt.Println("Invalid IP address")
return
}
if parsedIP.To4() != nil {
fmt.Println("IPv4 address")
} else if parsedIP.To16() != nil {
fmt.Println("IPv6 address")
} else {
fmt.Println("Unknown IP address format")
}
}
在上面的例子中,我们首先调用net.ParseIP()
函数将字符串形式的IP地址转换为net.IP
类型。然后,我们使用To4()
方法检查是否为IPv4地址,如果返回非空,则表示是IPv4。如果不是IPv4,则可以使用To16()
方法检查是否为IPv6地址,如果返回非空,则表示是IPv6。
注意:这里没有考虑判断一个域名对应的多个IP地址的情况。
内容由零声教学AI助手提供,问题来源于学员提问