mirror of
https://github.com/Control-D-Inc/ctrld.git
synced 2026-08-23 01:27:13 +02:00
Improving Mac discovery
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
//go:build !linux && !windows
|
||||
|
||||
package clientinfo
|
||||
|
||||
import (
|
||||
"os/exec"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func (a *arpDiscover) scan() {
|
||||
data, err := exec.Command("arp", "-an").Output()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
for _, line := range strings.Split(string(data), "\n") {
|
||||
fields := strings.Fields(line)
|
||||
if len(fields) <= 3 {
|
||||
continue
|
||||
}
|
||||
|
||||
// trim brackets
|
||||
ip := strings.ReplaceAll(fields[1], "(", "")
|
||||
ip = strings.ReplaceAll(ip, ")", "")
|
||||
|
||||
mac := fields[3]
|
||||
a.mac.Store(ip, mac)
|
||||
a.ip.Store(mac, ip)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user