mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-07 09:41:37 +08:00
add all local interfaces to node
This commit is contained in:
@@ -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 {
|
||||
|
||||
|
Reference in New Issue
Block a user