Golang 获取本地 IP 地址指南
Golang 获取本地 IP 地址指南
想要用 Golang 获取本地 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/fUhL 著作权归作者所有。请勿转载和采集!