all: spoof loopback ranges in client info

Sending them are useless, so using RFC1918 address instead.
This commit is contained in:
Cuong Manh Le
2023-10-27 22:53:15 +07:00
committed by Cuong Manh Le
parent 44ba6aadd9
commit 63f959c951
3 changed files with 48 additions and 0 deletions
+15
View File
@@ -241,6 +241,21 @@ func (t *Table) LookupHostname(ip, mac string) string {
return ""
}
// LookupRFC1918IPv4 returns the RFC1918 IPv4 address for the given MAC address, if any.
func (t *Table) LookupRFC1918IPv4(mac string) string {
t.initOnce.Do(t.init)
for _, r := range t.ipResolvers {
ip, err := netip.ParseAddr(r.LookupIP(mac))
if err != nil || ip.Is6() {
continue
}
if ip.IsPrivate() {
return ip.String()
}
}
return ""
}
type macEntry struct {
mac string
src string