mirror of
https://github.com/Control-D-Inc/ctrld.git
synced 2026-02-03 22:18:39 +00:00
31 lines
503 B
Go
31 lines
503 B
Go
//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)
|
|
}
|
|
}
|