Skip to content

Instantly share code, notes, and snippets.

@aeppert
Created September 27, 2017 02:18
Show Gist options
  • Select an option

  • Save aeppert/ea0eb38ef4e6ed166deb09b2a01b0854 to your computer and use it in GitHub Desktop.

Select an option

Save aeppert/ea0eb38ef4e6ed166deb09b2a01b0854 to your computer and use it in GitHub Desktop.
package main
import (
"encoding/json"
"fmt"
"net"
)
type netifs struct {
Addrs []string
MTU int
Name string
HWAddr string
Flags string
}
type outputNetif struct {
NetIfs []netifs `json:"netifs,omitempty"`
}
func getAddrs(naddrs []net.Addr) []string {
var ret []string
for n := range naddrs {
ret = append(ret, naddrs[n].String())
}
return ret
}
func getNetIfs() []netifs {
var ret []netifs
ni, err := net.Interfaces()
if err != nil {
return nil
}
for n := range ni {
var taddrs []string
naddrs, err := ni[n].Addrs()
if err == nil {
taddrs = getAddrs(naddrs)
}
ret = append(ret, netifs{Addrs: taddrs,
MTU: ni[n].MTU,
Name: ni[n].Name,
HWAddr: ni[n].HardwareAddr.String(),
Flags: ni[n].Flags.String()})
}
return ret
}
func main() {
ni := getNetIfs()
slcB, _ := json.Marshal(ni)
fmt.Println(string(slcB))
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment