Go使用纯真IP数据库获取地理位置

纯真版IP地址数据库是当前网络上最权威、地址最精确、IP记录以及网吧数据最多的IP地址数据库。收集了包括中国电信、中国移动、中国联通、铁通、长城宽带等各 ISP 的最新准确 IP 地址数据。通过大家的共同努力打造一个没有未知数据,没有错误数据的QQ IP。IP数据库每5天更新一次,请大家定期更新最新的IP数据库!

准备工作(纯真IP数据库下载)

纯真IP官网:https://www.cz88.net/
进入官网后点击纯真IP数据库下载
IP数据库下载
下载完成后进入下载文件安装下载好的exe文件,安装完成后打开项目安装根目录,将qqwry.dat文件复制到golang项目中。
qqwry.dat文件

项目目录

依赖安装

1.mahonia 处理 GBK 编码的地址信息 (请确保先装好 hg)

go get code.google.com/p/mahonia

2.使用

go get github.com/yinheli/qqwry

3.在项目中引入

import (
	"github.com/yinheli/qqwry"
	"log"
)

/**
纯真数据库获取ip地址
@return {"Ip": "180.89.94.90","Country": "北京市","City": "鹏博士宽带"}
*/

func GetIp(ip string) *qqwry.QQwry {
	address := net.ParseIP(ip)
	if ip == "" || address == nil {
		panic("get ip os ip is empty")
	} else {
		dir, err := os.Getwd()
		if err != nil {
			panic("get ip os dir err" + err.Error())
		}
		q := qqwry.NewQQwry(dir + "/config/qqwry.dat")
		q.Find(ip)
		return q
	}
}
一个勤勤恳恳码代码的码农,爱生活,爱代码!
原文地址:https://www.cnblogs.com/caiji/p/14721521.html