You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

37 lines
812 B

package ipinfo_test
import (
"yunyan/sys/ipinfo"
"fmt"
"testing"
)
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{
"36.152.160.156", // 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)
}
}