golang 基础库之解析本地 IP 地址,介绍了如何从可用的本地端口获取对应的IP地址
go基础库之解析本地 IP 地址
Golang 版本
1.14.2
前言
golang 基础库之解析本地 IP 地址,介绍了如何从可用的本地端口获取对应的IP地址
实现
package main
import (
"fmt"
"net"
)
func main() {
// 获取所有网络接口
interfaces, err := net.Interfaces()
if err != nil {
panic(err)
}
for _, interf := range interfaces {
// 解析地址
// 遍历接口
addrs, err := interf.Addrs()
if err != nil {
panic(err)
}
fmt.Println(interf.Name)
for _, add := range addrs {
if ip, ok := add.(*net.IPNet); ok {
fmt.Printf("\t%v\n", ip)
}
}
}
}
$ go run main.go
本地连接* 4
fe80::4d29:b94e:922f:e339/64
192.168.1.57/16
WLAN
10.154.11.12/24
原理
net
包包含 Interfaces
函数,该函数将网络接口列为 Interface
结构的一个切片。而 Interface
结构具有 Addrs
方法,该方法列出可用的网络地址。 通过这种方式,就可以按照接口列出对应的地址。
另一个选择是使用 net
包的 interfaceaddr
函数,它提供了实现 Addr
接口的结构切片。 这为你提供了获取所需信息的方法。