Custom private blocks (#1705)
Co-authored-by: Asim Aslam <asim@aslam.me>
This commit is contained in:
parent
5b161b88f7
commit
c28f625cd4
@ -17,6 +17,15 @@ func init() {
|
||||
}
|
||||
}
|
||||
|
||||
// AppendPrivateBlocks append private network blocks
|
||||
func AppendPrivateBlocks(bs ...string) {
|
||||
for _, b := range bs {
|
||||
if _, block, err := net.ParseCIDR(b); err == nil {
|
||||
privateBlocks = append(privateBlocks, block)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func isPrivateIP(ipAddr string) bool {
|
||||
ip := net.ParseIP(ipAddr)
|
||||
for _, priv := range privateBlocks {
|
||||
|
@ -56,3 +56,24 @@ func TestExtractor(t *testing.T) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func TestAppendPrivateBlocks(t *testing.T) {
|
||||
tests := []struct {
|
||||
addr string
|
||||
expect bool
|
||||
}{
|
||||
{addr: "9.134.71.34", expect: true},
|
||||
{addr: "8.10.110.34", expect: false}, // not in private blocks
|
||||
}
|
||||
|
||||
AppendPrivateBlocks("9.134.0.0/16")
|
||||
|
||||
for _, test := range tests {
|
||||
t.Run(test.addr, func(t *testing.T) {
|
||||
res := isPrivateIP(test.addr)
|
||||
if res != test.expect {
|
||||
t.Fatalf("expected %t got %t", test.expect, res)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user