fix: process IPv6 Link-Local address (#1657)

This commit is contained in:
wwqgtxx
2024-11-18 10:34:43 +08:00
parent 25b3c86d31
commit 80e4eaad14
4 changed files with 25 additions and 26 deletions

View File

@@ -61,3 +61,19 @@ func parseHTTPAddr(request *http.Request) *C.Metadata {
return metadata
}
func prefixesContains(prefixes []netip.Prefix, addr netip.Addr) bool {
if len(prefixes) == 0 {
return false
}
if !addr.IsValid() {
return false
}
addr = addr.Unmap().WithZone("") // netip.Prefix.Contains returns false if ip has an IPv6 zone
for _, prefix := range prefixes {
if prefix.Contains(addr) {
return true
}
}
return false
}