// ipquery 包示例:基于 ip2region xdb 的 IP/域名归属地查询 // 运行: go run . [IP或域名] package main import ( "fmt" "os" "git.zeroonesoft.cn/golib/zogo/ipquery" ) func main() { if len(os.Args) < 2 { fmt.Println("用法: ipquery [IP或域名]") fmt.Println("xdb 下载: https://github.com/lionsoul2014/ip2region") return } dbPath := os.Args[1] // 加载整个 xdb 到内存(进程内只需执行一次,之后可并发查询) if err := ipquery.LoadIp(dbPath); err != nil { fmt.Println("加载失败:", err) return } ip := "114.114.114.114" if len(os.Args) > 2 { ip = os.Args[2] } // 查询详情 data, err := ipquery.Query(ip) if err != nil { fmt.Println("查询失败:", err) return } fmt.Printf("IP: %s 国家: %s 区域: %s 省份: %s 城市: %s 运营商: %s\n", data.Ip, data.Country, data.Area, data.Province, data.City, data.Isp) // 查询简述(中国 IP 返回“省份城市 运营商”,国外返回“国家省份 运营商”) fmt.Println("简述:", ipquery.QueryString(ip)) // IP 字符串转 uint32 if num, err := ipquery.StringToUint32("192.168.1.1"); err == nil { fmt.Printf("192.168.1.1 -> %d\n", num) } }