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

使用netip

This commit is contained in:
2022-07-26 14:14:06 +08:00
parent 37e9cabde8
commit 9c86470fa1
2 changed files with 70 additions and 46 deletions

View File

@ -1,6 +1,7 @@
package iprange
import (
"net/netip"
"testing"
"github.com/stretchr/testify/assert"
@ -29,7 +30,7 @@ func TestSingleIp(t *testing.T) {
assert.False(t, r.Contains("192.168.0.123"))
}
func TestCIDR(t *testing.T) {
func TestPrefix(t *testing.T) {
r, err := NewRange("192.168.2.0/24")
if err != nil {
t.Fatal(err)
@ -40,6 +41,18 @@ func TestCIDR(t *testing.T) {
assert.False(t, r.Contains("192.168.3.162"))
}
func TestPrefix2(t *testing.T) {
r, err := NewRange("192.168.15.0/21")
if err != nil {
t.Fatal(err)
}
assert.True(t, r.Contains("192.168.8.10"))
assert.True(t, r.Contains("192.168.14.162"))
assert.False(t, r.Contains("192.168.3.162"))
assert.False(t, r.Contains("192.168.2.162"))
}
func TestRange(t *testing.T) {
r, err := NewRange("192.168.2.20-192.168.2.30")
if err != nil {
@ -52,5 +65,29 @@ func TestRange(t *testing.T) {
assert.False(t, r.Contains("192.168.2.10"))
assert.False(t, r.Contains("192.168.2.31"))
}
func TestLocalhost(t *testing.T) {
r, err := NewRange("::1")
if err != nil {
t.Fatal(err)
}
assert.True(t, r.Contains("::1"))
}
func TestNetIP(t *testing.T) {
addr, err := netip.ParseAddr("192.168.2.10")
if err != nil {
t.Fatal(err)
}
t.Log(netip.MustParseAddr("192.168.2.4").Compare(addr))
t.Log(netip.MustParseAddr("192.168.2.10").Compare(addr))
t.Log(netip.MustParseAddr("192.168.2.11").Compare(addr))
prefix := netip.MustParsePrefix("192.168.2.0/24")
t.Log(prefix.Contains(netip.MustParseAddr("192.168.2.53")))
t.Log(prefix.Contains(netip.MustParseAddr("192.168.3.53")))
}