1
0
mirror of https://github.com/charlienet/go-mixed.git synced 2025-07-18 00:22:41 +08:00

ip范围判断

This commit is contained in:
2022-07-01 14:34:37 +08:00
parent f061b2efeb
commit 44304f5b16
2 changed files with 181 additions and 0 deletions

56
ip_range/ip_range_test.go Normal file
View File

@ -0,0 +1,56 @@
package iprange
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestSingleErrorIP(t *testing.T) {
values := []string{
"192.168.01",
"::",
}
for _, v := range values {
r, err := NewRange(v)
t.Log(r, err)
}
}
func TestSingleIp(t *testing.T) {
r, err := NewRange("192.168.0.1")
if err != nil {
t.Fatal(err)
}
assert.True(t, r.Contains("192.168.0.1"))
assert.False(t, r.Contains("192.168.0.123"))
}
func TestCIDR(t *testing.T) {
r, err := NewRange("192.168.2.0/24")
if err != nil {
t.Fatal(err)
}
assert.True(t, r.Contains("192.168.2.12"))
assert.True(t, r.Contains("192.168.2.162"))
assert.False(t, r.Contains("192.168.3.162"))
}
func TestRange(t *testing.T) {
r, err := NewRange("192.168.2.20-192.168.2.30")
if err != nil {
t.Fatal(err)
}
assert.True(t, r.Contains("192.168.2.20"))
assert.True(t, r.Contains("192.168.2.21"))
assert.True(t, r.Contains("192.168.2.30"))
assert.False(t, r.Contains("192.168.2.10"))
assert.False(t, r.Contains("192.168.2.31"))
}