blob: dd0b6d8be77cef0284f9dfb897805e6acd7d2dab (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
// Copyright (c) Tailscale Inc & AUTHORS
// SPDX-License-Identifier: BSD-3-Clause
package posture
import (
"net/netip"
"slices"
"tailscale.com/net/netmon"
)
// GetHardwareAddrs returns the hardware addresses of all non-loopback
// network interfaces.
func GetHardwareAddrs() (hwaddrs []string, err error) {
err = netmon.ForeachInterface(func(i netmon.Interface, _ []netip.Prefix) {
if i.IsLoopback() {
return
}
if a := i.HardwareAddr.String(); a != "" {
hwaddrs = append(hwaddrs, a)
}
})
slices.Sort(hwaddrs)
return slices.Compact(hwaddrs), err
}
|