hyprspace/p2p/addrs_linux.go
DavHau 6f3c85a1ef
feat: add mDNS peer discovery for LAN environments (#102)
Co-authored-by: Max <max@privatevoid.net>
2026-06-22 14:01:34 +00:00

32 lines
566 B
Go

//go:build linux
package p2p
import (
"net"
"github.com/vishvananda/netlink"
)
// physicalInterfaceAddrs returns all IP addresses assigned to physical interfaces.
func physicalInterfaceAddrs() ([]net.IP, error) {
links, err := netlink.LinkList()
if err != nil {
return nil, err
}
var ips []net.IP
for _, link := range links {
if link.Type() != "device" {
continue
}
addrs, err := netlink.AddrList(link, netlink.FAMILY_ALL)
if err != nil {
continue
}
for _, addr := range addrs {
ips = append(ips, addr.IP)
}
}
return ips, nil
}