Remove interface names from IPv6

This commit is contained in:
Jeroen De Meerleer 2024-07-01 16:26:04 +02:00 committed by GitHub
parent 12fae2ebb8
commit 8946dd1898
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 7 additions and 3 deletions

View file

@ -4,6 +4,7 @@ import (
"errors" "errors"
"fmt" "fmt"
"net" "net"
"net/netip"
"strings" "strings"
) )
@ -91,10 +92,11 @@ func (ip *Checker) ContainsIP(addr net.IP) bool {
} }
func parseIP(addr string) (net.IP, error) { func parseIP(addr string) (net.IP, error) {
userIP := net.ParseIP(addr) parsedAddr, err := netip.ParseAddr(addr)
if userIP == nil { if err != nil {
return nil, fmt.Errorf("can't parse IP from address %s", addr) return nil, fmt.Errorf("can't parse IP from address %s", addr)
} }
return userIP, nil ip := parsedAddr.As16()
return ip[:], nil
} }

View file

@ -258,6 +258,7 @@ func TestContainsIsAllowed(t *testing.T) {
"2a03:4000:6:d080::42", "2a03:4000:6:d080::42",
"fe80::1", "fe80::1",
"fe80:aa00:00bb:4232:ff00:eeee:00ff:1111", "fe80:aa00:00bb:4232:ff00:eeee:00ff:1111",
"fe80:aa00:00bb:4232:ff00:eeee:00ff:1111%vEthernet",
"fe80::fe80", "fe80::fe80",
"1.2.3.1", "1.2.3.1",
"1.2.3.32", "1.2.3.32",
@ -271,6 +272,7 @@ func TestContainsIsAllowed(t *testing.T) {
rejectIPs: []string{ rejectIPs: []string{
"2a03:4000:7:d080::", "2a03:4000:7:d080::",
"2a03:4000:7:d080::1", "2a03:4000:7:d080::1",
"2a03:4000:7:d080::1%vmnet1",
"4242::1", "4242::1",
"1.2.16.1", "1.2.16.1",
"1.2.32.1", "1.2.32.1",