Advertisement
AJIOB

Go IFace test

Nov 15th, 2018
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 0.63 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "fmt"
  5.     "net"
  6. )
  7.  
  8. func localAddresses() {
  9.     ifaces, err := net.Interfaces()
  10.     if err != nil {
  11.         fmt.Print(fmt.Errorf("localAddresses: %+v\n", err.Error()))
  12.         return
  13.     }
  14.     for _, i := range ifaces {
  15.         addrs, err := i.Addrs()
  16.         if err != nil {
  17.             fmt.Print(fmt.Errorf("localAddresses: %+v\n", err.Error()))
  18.             continue
  19.         }
  20.         for _, a := range addrs {
  21.             switch v := a.(type) {
  22.             case *net.IPAddr:
  23.                 fmt.Printf("%v : %s (%s)\n", i.Name, v, v.IP.DefaultMask())
  24.  
  25.             case *net.IPNet:
  26.                 fmt.Printf("%v : %s [%v/%v]\n", i.Name, v, v.IP, v.Mask)
  27.             }
  28.  
  29.         }
  30.     }
  31. }
  32.  
  33. func main() {
  34.     localAddresses()
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement