rooty
10/13/2014 - 10:15 PM

Get local IP addresses

Get local IP addresses

Use net.InterfaceAddrs().

addrs, err := net.InterfaceAddrs()
if err != nil {
    panic(err)
}   
for i, addr := range addrs {
    fmt.Printf("%d %v\n", i, addr)
}   
If you want to know interface names too, use net.Interfaces() to get a list of interfaces first.

list, err := net.Interfaces()
if err != nil {
    panic(err)
}   

for i, iface := range list {
    fmt.Printf("%d name=%s %v\n", i, iface.Name, iface)
    addrs, err := iface.Addrs()
    if err != nil {
        panic(err)
    }
    for j, addr := range addrs {
        fmt.Printf(" %d %v\n", j, addr)
    }
}
#pkg~net