package main import ( "log" "net" ) func printInterfaces() error { ifs, err := net.Interfaces() if err != nil { return err } for _, i := range ifs { if i.Flags&net.FlagLoopback != 0 { continue } addrs, err := i.Addrs() if err != nil { return err } for _, addr := range addrs { in, ok := addr.(*net.IPNet) if ok && in.IP.To4() != nil { log.Printf("interface %v: %v", i.Name, in.IP) break } } } return nil }