可以通过 net.InterfaceAddrs() 来获取内网相关数据,从而获得内网 IP :
package main
import (
"fmt"
"net"
"os"
)
// 获取内网 IP
func GetIntranetIp() string {
addrs, err := net.InterfaceAddrs()
if err != nil {
fmt.Println(err)
os.Exit(1)
}
IntranetIp := ""
for _, address := range addrs {
// 检查ip地址判断是否回环地址
if ipnet, ok := address.(*net.IPNet); ok && !ipnet.IP.IsLoopback() {
if ipnet.IP.To4() != nil {
IntranetIp = ipnet.IP.String()
break
}
}
}
return IntranetIp
}
func main() {
ip := GetIntranetIp()
fmt.Printf("ip: %v\n", ip)
}