package core import "github.com/google/gopacket/pcap" type Device struct { Name string `json:"Name"` Description string `json:"Description"` Flags uint32 `json:"Flags"` Addresses []string `json:"Addresses"` } func GetAllDevice() ([]Device, error) { netInterfaces, err := pcap.FindAllDevs() if err != nil { return nil, err } devices := make([]Device, 0, len(netInterfaces)) for _, netInterface := range netInterfaces { addr := make([]string, 0, len(netInterface.Addresses)) for _, address := range netInterface.Addresses { addr = append(addr, address.IP.String()) } devices = append(devices, Device{ Name: netInterface.Name, Description: netInterface.Description, Flags: netInterface.Flags, Addresses: addr, }) } return devices, nil }