- 基于 ip2region xdb 全内存加载, 新增依赖 lionsoul2014/ip2region - 附测试、examples/ipquery 例程与包 README(含 xdb 获取说明)
39 lines
1.0 KiB
Go
39 lines
1.0 KiB
Go
package ipquery
|
|
|
|
import "testing"
|
|
|
|
func TestStringToUint32(t *testing.T) {
|
|
// 192.168.1.1 = 0xC0A80101
|
|
got, err := StringToUint32("192.168.1.1")
|
|
if err != nil {
|
|
t.Fatalf("StringToUint32: %v", err)
|
|
}
|
|
if got != 3232235777 {
|
|
t.Errorf("StringToUint32(192.168.1.1) = %d, want 3232235777", got)
|
|
}
|
|
if got2, _ := StringToUint32("0.0.0.0"); got2 != 0 {
|
|
t.Errorf("StringToUint32(0.0.0.0) = %d, want 0", got2)
|
|
}
|
|
}
|
|
|
|
func TestStringToUint32Invalid(t *testing.T) {
|
|
if _, err := StringToUint32("not-an-ip"); err == nil {
|
|
t.Error("非法字符串应返回错误")
|
|
}
|
|
if _, err := StringToUint32("::1"); err == nil {
|
|
t.Error("IPv6 无 IPv4 映射应返回错误")
|
|
}
|
|
}
|
|
|
|
func TestRegexpDns(t *testing.T) {
|
|
if err := RegexpDns("www.baidu.com"); err != nil {
|
|
t.Errorf("合法域名不应报错: %v", err)
|
|
}
|
|
if err := RegexpDns("sub.domain.example.org"); err != nil {
|
|
t.Errorf("合法域名不应报错: %v", err)
|
|
}
|
|
if err := RegexpDns("不是域名!!!"); err == nil {
|
|
t.Error("无字母数字的字符串应判定非法")
|
|
}
|
|
}
|