1
0
Fork 0
mirror of https://github.com/anyproto/anytype-heart.git synced 2025-06-12 10:40:55 +09:00
anytype-heart/net/addrs/interface.go
2023-05-24 17:10:52 +02:00

40 lines
791 B
Go

//go:build !android
// +build !android
package addrs
import (
"net"
"github.com/anyproto/anytype-heart/util/slice"
)
func SetInterfaceAddrsGetter(getter InterfaceAddrsGetter) {}
func SetInterfaceGetter(getter InterfaceGetter) {}
type InterfaceGetter interface {
Interfaces() []Interface
}
type InterfaceAddrsGetter interface {
InterfaceAddrs() []InterfaceAddr
}
func GetInterfacesAddrs() (iAddrs InterfacesAddrs, err error) {
addrs, err := net.InterfaceAddrs()
if err != nil {
return
}
iAddrs.Addrs = addrs
ifaces, err := net.Interfaces()
if err != nil {
return
}
iAddrs.Interfaces = ifaces
iAddrs.Interfaces = slice.Filter(iAddrs.Interfaces, func(iface net.Interface) bool {
return iface.Flags&net.FlagUp != 0 && iface.Flags&net.FlagMulticast != 0
})
return
}