feat(ipquery): 自 go-hua 迁入 IP/域名归属地查询
- 基于 ip2region xdb 全内存加载, 新增依赖 lionsoul2014/ip2region - 附测试、examples/ipquery 例程与包 README(含 xdb 获取说明)
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
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("无字母数字的字符串应判定非法")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user