专栏首页陶士涵的菜地[Go] 实战项目在线客服GO-FLY -在gin框架使用IP识别库转换IP为城市

[Go] 实战项目在线客服GO-FLY -在gin框架使用IP识别库转换IP为城市

获取到当前用户的IP以后想把它转换成中国的城市 , 可以使用下面这个库

ipdb-go

gin的入口代码

func PostVisitorLogin(c *gin.Context) {
    ipcity:=tools.ParseIp(c.ClientIP())
    ipcity.CountryName+ipcity.RegionName+ipcity.CityName
}

转换的函数代码

package tools

import (
    "github.com/ipipdotnet/ipdb-go"
)

func ParseIp(myip string)(*ipdb.CityInfo) {
    db, err := ipdb.NewCity("./config/city.free.ipdb")
    if err != nil {
        return nil
    }
    db.Reload("./config/city.free.ipdb")
    c,err :=db.FindInfo(myip, "CN")
    if err != nil {
        return nil
    }
    return c
}

注意city.free.ipdb文件要放到当前运行程序路径的相对目录下 , 我是放在了 ./config/下面了

ipdb-go

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • [javaSE] 多线程(join方法)

    多条线程并发执行,随机切换,调用join()方法,会使当前线程所在的线程(一般主线程)冻结,直到当前线程结束,所在的线程才恢复继续执行

    陶士涵
  • [javaSE] 看博客学习多线程的创建方式和优劣比较和PHP多线程

    Runnable是一个接口,定义一个类MyRunnable实现Runnable接口,实现run()方法,

    陶士涵
  • [日常] Go语言圣经--示例: 并发的Clock服务习题

    练习 8.1: 修改clock2来支持传入参数作为端口号,然后写一个clockwall的程序,这个程序可以同时与多个clock服务器通信,从多服务器中读取时间,...

    陶士涵
  • 《neural network and deep learning》题解——ch03 其他技术(momentun,tanh)

    http://blog.csdn.net/u011239443/article/details/77848503

    用户1621453
  • VUE-挂载点-实例成员-数据-过滤器-文本指令-事件指令-属性指令-表单指令-01

    目前市面上主流的前端三大框架(均开源):Angular(Facebook主导的)、React(Github主导的)、Vue(尤雨溪个人项目,全球开发者社区维护)

    suwanbin
  • 如何使用HANA studio查看HANA原生模型

    版权声明:本文为博主汪子熙原创文章,未经博主允许不得转载。 https://jerry.bl...

    Jerry Wang
  • 速读原著-TCP/IP(端口映射器)

    包含远程过程的 R P C服务器程序使用的是临时端口,而不是知名端口。这就需要某种形式的“注册”程序来跟踪哪一个 R P C程序使用了哪一个临时端口。在 Sun...

    cwl_java
  • 【python-leetcode210-拓扑排序】课程表Ⅱ

    在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1]

    绝命生
  • NIO之缓冲区【复制缓冲区】

      复制一个缓冲区会创建一个新的 Buffer 对象,但并不复制数据。原始缓冲区和副本都会操作同样的数据元素。我们将以 CharBuffer 为例来演示,但同样...

    用户4919348
  • 前端工程师自检清单73答

    本文参考文章《一名【合格】前端工程师的自检清单》, 并对其中的部分题目进行了解答,若有遗漏或错误之处望大家指出纠正,共同进步。(点击题目展开答案!)

    小皮咖

扫码关注云+社区

领取腾讯云代金券