前言

有业务需求做ip定位,在这简单记录下,以防自己忘了,有相似需求的小伙伴也可以参考。

实现方式及对比

ip地理定位主要包括以离线数据库、在线API两种方式实现。不同实现方式级第三方的使用效果请参考这篇文章。笔者最终选择了MAXMIND离线的GeoLite2数据库(免费、更快、但需要更新数据、准确率相对较低),比较富裕或者追求更高准确率的小伙伴可以试试GeoIP2或者其他国内平台提供的API或者离线数据。对于GeoLite2与GeoIP2,MAXMIND官网上有多种语言的使用示例,如图,上手还是比较简单的。

GeoLite2数据获取

目前下载离线数据需要登录,先注册账号并登录。

1、MaxMind官网选择GeoLite2 Free Geolocation Data-->sign up注册-->Download Files

下载页面分几种类型数据,小伙伴们可以按照需求选择,笔者下载的是GeoLite2-City.mmdb的GZIP包

GO语言实现

package mainimport ("fmt""log""net""github.com/oschwald/geoip2-golang"
)const DATA_FILE = "GeoLite2-City.mmdb"func main() {db, err := geoip2.Open(DATA_FILE)if err != nil {log.Fatal(err)}defer db.Close()var ipTxt = "***.**.**.***"ip := net.ParseIP(ipTxt)record, err := db.City(ip)if err != nil || record == nil {log.Fatal(err)}fmt.Println("ip:", ip, "------------------------------------------")fmt.Println("国家:", record.Country.Names["zh-CN"])fmt.Println("城市:", record.City.Names["zh-CN"])fmt.Println("经度:", record.Location.Longitude)fmt.Println("纬度:", record.Location.Latitude)fmt.Println("准确半径:", record.Location.AccuracyRadius)fmt.Println("------------------------------------------")}

运行效果

参考内容

https://www.cnblogs.com/zccoming/p/13338493.html

GitHub - Hackl0us/GeoIP2-CN: 小巧精悍、准确、实用 GeoIP2 数据库

GeoLite2/GeoIP2---简单的ip地址定位相关推荐

  1. 什么是IP地址定位,优缺点有哪些?

    IP地址是什么 IP地址就像是我们的家庭住址一样,如果你要写信给一个人,你就要知道对方的地址,这样邮递员才能把信送到.计算机发送信息就好比是邮递员,它必须知道唯一的"家庭地址"才能 ...

  2. 获取客户端IP地址定位城市信息

    获取客户端IP地址定位城市信息 1.首先获取客户端的IP地址 function getIPaddress(){ $IPaddress=''; if (isset($_SERVER)){ if (iss ...

  3. 开源:推荐一个不错的离线IP地址定位库

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | https://gitee.com/lions ...

  4. 若依集成ip2region实现离线IP地址定位

    离线IP地址定位库主要用于内网或想减少对外访问http带来的资源消耗. 目录 一.引入依赖 二.添加工具类RegionUtil.java 三.修改AddressUtils.java 四.添加离线IP地 ...

  5. Ip2region 离线IP地址定位库

    Ip2region 是什么 ip2region v2.0 - 是一个离线IP地址定位库和IP定位数据管理框架,10微秒级别的查询效率,提供了众多主流编程语言的 xdb 数据生成和查询客户端实现. Gi ...

  6. ThinkPHP中IP地址定位,包括IP地址库文件

    前几天,研究了一下TP中IP地址定位,着实费了一些时间,现在解决了,分享给大家. IP地址库有点大,去这里下载http://download.csdn.net/detail/man_quan/4636 ...

  7. ipcalc命令 – 简单的IP地址计算器

    ipcalc命令的全称是:Calculate IP information for a host(计算主机的IP信息) ipcalc命令是一个简单的ip地址计算器,可以完成简单的IP地址计算任务. 语 ...

  8. 简单测试IP地址连通性

    简单测试IP地址连通性 现有两台主机PC1.PC2,两台交换机S1.S2,一台路由器R1,主机都处于不同的网段,如何让路由器和两台主机连通? 1.搭建拓扑结构图 2.对主机进行配置 同理,对另外一台主 ...

  9. 准确率99.9%的离线IP地址定位库

    准确率99.9%的离线IP地址定位库. Ip2region 是一个离线 IP 地址定位库,准确率高达 99.9%,搜索性能为 0.0x 毫秒.DB 文件只有几兆字节,其中存储了所有 IP 地址.支持 ...

最新文章

  1. 大数据处理系列之(一)Java线程池使用
  2. 【Python】吐槽SQLAlchemy
  3. 探求数据仓库关键环节ETL的本质
  4. SO_REUSEADDR SO_REUSEPORT 解析
  5. 经验 | 如何提升目标检测NMS精度
  6. 特朗普网络安全行政令实施情况如何?
  7. 一箭N雕:多任务深度学习实战
  8. ffmpeg MP3转wav
  9. 关于产品的一些思考——八千里网络之谁叫我起床
  10. centos漏洞系列(三):Google Android libnl权限提升漏洞
  11. 基于51单片机的电子密码锁设计
  12. 如何使用纯 CSS(border-radius 和 clip)属性画出半圆
  13. 用计算机玩游戏的视频教程,让桌面上同时操作游戏和显示视频的技巧-电脑教程...
  14. XU316-1024-熙光技术
  15. Teradata天睿任命王波为大中华区总裁
  16. 十六进制颜色转换ARGB/RGB
  17. hdoj-2550 百步穿杨
  18. 通达oa 2017 php,【通达OA】办公就用通达OA,通达OA官方网站_OA系统_协同办公
  19. 机器学习实战第二章——KNN算法(源码解析)
  20. 前端从头搭建个人博客

热门文章

  1. MODIS MOD13A3 ndvi数据sg批量滤波
  2. 凹凸中的相与国 ——读《大清相国》
  3. 渗透杂记2013-07-31
  4. html加纵向滚动条,添纵向滚动条
  5. 建造者模式用JAVA的简单实现
  6. repo下载安卓源码记录
  7. 常见的图像文件格式又有哪些呢?
  8. 集米社浅谈下那些令网兼者疯狂的时代。
  9. 神经翻译笔记4扩展c. 2017-2019年间RNN和RNN语言模型的新进展
  10. 互联网金融开发软件公司值得选择的有哪些?