只是一个简单的计网课设
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
eruhs/core/device.go

35 lines
928 B

6 months ago
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
}