add all local interfaces to node

This commit is contained in:
Matthew R. Kasun
2022-11-28 11:16:19 -05:00
parent 2a69df0979
commit 6b18ff57c9
5 changed files with 55 additions and 0 deletions

View File

@@ -127,6 +127,37 @@ func getPrivateAddrBackup() (string, error) {
return local, err
}
func getInterfaces() (*[]models.Iface, error) {
ifaces, err := net.Interfaces()
if err != nil {
return nil, err
}
var data []models.Iface
var link models.Iface
for _, iface := range ifaces {
if iface.Flags&net.FlagUp == 0 {
continue // interface down
}
if iface.Flags&net.FlagLoopback != 0 {
continue // loopback interface
}
addrs, err := iface.Addrs()
if err != nil {
return nil, err
}
for _, addr := range addrs {
link.Name = iface.Name
_, cidr, err := net.ParseCIDR(addr.String())
if err != nil {
continue
}
link.Address = *cidr
data = append(data, link)
}
}
return &data, nil
}
// GetNode - gets node locally
func GetNode(network string) models.Node {