基于 ip2region 使用 go 扩展的一个简单的 IP 地址归属地查询服务

hezhizheng · · 3729 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

# go-ip2region > 基于 [ip2region](https://github.com/lionsoul2014/ip2region) 使用 go 扩展的一个简单的 IP 地址归属地查询服务 > [github](https://github.com/hezhizheng/go-ip2region) > [在线IP地址归属地查询](https://ip.hzz.cool) ## 功能 - 提供 http 接口查询 IP 地址归属地 - 提供命令行 下载/更新 最新的 `ip2region.db` ip 库 (数据来源原仓库) ## 使用 可直接下载 [releases](https://github.com/hezhizheng/go-ip2region/releases) 文件启动即可,可选参数说明: ``` ./go-ip2region_windows_amd64.exe -h Usage of D:\go-ip2region\go-ip2region_windows_amd64.exe: -d string 仅用于下载最新的ip地址库,保存在当前目录 (default "0") -p string 本地监听的端口 (default "9090") ``` ## 启动http服务 ``` // 没有IP地址库会自动下载,保存在当前目录 ./go-ip2region_windows_amd64.exe // 没有指定IP会获取当前客户端IP curl http://127.0.0.1:9090 curl http://127.0.0.1:9090?ip=59.42.37.186 // 返回数据格式 { "code": 200, "msg": "", "data": { "ip": "59.42.37.186", "country": "中国", "province": "广东", "city": "广州", "county": "0", "isp": "电信" } } ``` ![](https://files.catbox.moe/q36ces.png) ![](https://files.catbox.moe/n4j1h5.png) ## 下载/更新 IP 地址库 ``` // 仅用于下载/更新 IP 地址库 ./go-ip2region_windows_amd64.exe -d 1 ``` ## 自行编译 ``` // 跨平台编译 gox -osarch="windows/amd64" -ldflags "-s -w" -gcflags="all=-trimpath=${PWD}" -asmflags="all=-trimpath=${PWD}" gox -osarch="darwin/amd64" -ldflags "-s -w" -gcflags="all=-trimpath=${PWD}" -asmflags="all=-trimpath=${PWD}" gox -osarch="linux/amd64" -ldflags "-s -w" -gcflags="all=-trimpath=${PWD}" -asmflags="all=-trimpath=${PWD}" ``` ## 部署Nginx ``` server { listen 80; listen 443 ssl http2; server_name ip.hzz.cool; ssl_certificate /path/fullchain.cer; ssl_certificate_key /path/hzz.cool.key; ssl_session_timeout 5m; ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; location / { try_files /_not_exists_ @backend; } location @backend { proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $http_host; proxy_pass http://127.0.0.1:9090; } access_log /www/wwwlogs/ip2region.log; error_log /www/wwwlogs/ip2region.error.log; } ```

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3729 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传