package q5 import ( "fmt" "net" ) func GetLocalIP() (string, error) { interfaces, err := net.Interfaces() if err != nil { return "", err } for _, iface := range interfaces { if iface.Flags&net.FlagUp == 0 || iface.Flags&net.FlagLoopback != 0 { continue } addrs, err := iface.Addrs() if err != nil { return "", err } for _, addr := range addrs { ipnet, ok := addr.(*net.IPNet) if !ok || ipnet.IP.IsLoopback() { continue } if ipnet.IP.To4() != nil { return ipnet.IP.String(), nil } } } return "", fmt.Errorf("无法获取本机有效的IP地址") }