# ipquery 基于 [ip2region](https://github.com/lionsoul2014/ip2region) xdb 数据文件的 IP/域名归属地查询:整个 xdb 加载进内存,进程内只加载一次后可并发查询。 > 迁移自 go-hua/ipquery,代码保持原样。 ## 用法 ```go import "git.zeroonesoft.cn/golib/zogo/ipquery" // 加载 xdb(进程内一次即可) if err := ipquery.LoadIp("D:/data/ip2region.xdb"); err != nil { ... } // 字符串结果("国家|区域|省份|城市|ISP") fmt.Println(ipquery.QueryString("114.114.114.114")) // 结构化结果(Query 支持域名,内部先解析) d, err := ipquery.Query("www.baidu.com") // 工具函数 ipquery.StringToUint32("114.114.114.114") // uint32 ipquery.RegexpDns("www.example.com") // 域名格式校验 ``` 完整可运行例程:[examples/ipquery/main.go](../examples/ipquery/main.go) (`go run . [IP或域名]`,xdb 从 ip2region 项目下载) ## 注意 - **必须先 `LoadIp`**,未加载直接 Query 会失败。 - 全内存加载(xdb 数十 MB 起),内存敏感场景注意;数据文件需自行定期更新。