interfaces.go 458 B

123456789101112131415161718192021222324252627282930313233
  1. package main
  2. import (
  3. "log"
  4. "net"
  5. )
  6. func printInterfaces() error {
  7. ifs, err := net.Interfaces()
  8. if err != nil {
  9. return err
  10. }
  11. for _, i := range ifs {
  12. if i.Flags&net.FlagLoopback != 0 {
  13. continue
  14. }
  15. addrs, err := i.Addrs()
  16. if err != nil {
  17. return err
  18. }
  19. for _, addr := range addrs {
  20. in, ok := addr.(*net.IPNet)
  21. if ok && in.IP.To4() != nil {
  22. log.Printf("interface %v: %v", i.Name, in.IP)
  23. break
  24. }
  25. }
  26. }
  27. return nil
  28. }