golang获取本地ip地址
要获取本地IP地址,可以使用net包中的接口函数Addrs()和InterfaceAddrs()来实现。
以下是一个示例代码,演示了如何获取本地IP地址:
package main
import (
"fmt"
"net"
)
func main() {
// 获取所有网络接口
interfaces, err := net.Interfaces()
if err != nil {
fmt.Println("获取网络接口失败:", err)
return
}
// 遍历每个网络接口,获取IP地址
for _, iface := range interfaces {
// 排除回环接口和无效接口
if iface.Flags&net.FlagLoopback == 0 && iface.Flags&net.FlagUp != 0 {
// 获取接口的地址列表
addrs, err := iface.Addrs()
if err != nil {
fmt.Println("获取接口地址失败:", err)
continue
}
// 遍历每个地址,找到IP地址
for _, addr := range addrs {
// 检查地址类型是否为IP地址
if ipnet, ok := addr.(*net.IPNet); ok && !ipnet.IP.IsLoopback() {
// IPv4地址
if ipnet.IP.To4() != nil {
fmt.Println("IPv4地址:", ipnet.IP.String())
}
// IPv6地址
if ipnet.IP.To16() != nil {
fmt.Println("IPv6地址:", ipnet.IP.String())
}
}
}
}
}
}
运行以上代码,将输出本机的IPv4和IPv6地址。
原文地址: https://www.cveoy.top/t/topic/inqy 著作权归作者所有。请勿转载和采集!