package ipinfo_test import ( "fmt" "testing" "yunyan/sys/ipinfo" ) func TestSys(t *testing.T) { sys, err := ipinfo.NewSys( ipinfo.SetV4XdbPath("./ip2region_v4.xdb"), ipinfo.SetV6XdbPath("./ip2region_v6.xdb"), ) if err != nil { t.Fatalf("init sys: %v", err) } defer sys.Close() cases := []string{ "43.153.96.16", // CN // "8.8.8.8", // US // "1.1.1.1", // AU // "203.129.64.1", // "103.110.204.1", // "240e:3b7:3272:d8d0:db09:c067:8d59:539e", // CN v6 } for _, ip := range cases { info, err := sys.GetIPInfo(ip) if err != nil { t.Errorf("ip %s query err: %v", ip, err) continue } fmt.Printf("IP:%-42s Country:%s(%s) Province:%s City:%s ISP:%s Continent:%s", info.IP, info.Country, info.CountryCode, info.Province, info.City, info.ISP, info.ContinentCode) } }