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("无字母数字的字符串应判定非法") } }