文档章节

[喵咪开源软件推荐(3)]全球IP库-GeoLite2-City

文振熙
 文振熙
发布于 2017/04/07 20:50
字数 1116
阅读 622
收藏 1

行业解决方案、产品招募中!想赚钱就来传!>>>

[喵咪开源软件推荐(3)]全球IP库-GeoLite2-City

#w-blog博客

哈喽大家好啊!喵咪开源软件推荐(3)终于和大家见面了,这次我们来说说什么呢?大家有没有遇到过这样一个场景,当你出国游玩的时候到了一个国家时你的手机就自动提示你在哪里是否需要切换时区,或者是地图定位时机器没有GPS芯片怎么通过网络定位获取经纬度等信息,这个时候我们能够获取到最好的属性就是IP地址,每一个国家都分配的有一批IP地址并且也有专门维护IP地址库的组织,看到这里大家也明白了对了我们今天就来推荐GenLite2这款IP数据库给到大家...

附上:

喵了个咪的博客:w-blog.cn

geolite2 下载地址 :http://dev.maxmind.com/geoip/geoip2/geolite2/

geoip2-golang 项目地址 :https://github.com/oschwald/geoip2-golang

1.GenLite2

1.1 简单介绍

GenLite2 是 Geoip2 的免费版本(Geoip2 是要收费提供专业服务,并且IP地址库对相对免费的更新频繁,有钱的老爷们可以购买支持),这款IP数据库是由 maxmind 进行维护的, GenLite2 提供的IP数据库格式有两种一种是二进制DB文件,另外一种是csv文件,首先还是推荐使用DB文件,并且精准度有两个等级,一个是精确到国家(数据相对比较少1.2MB)另外一个就是精确到城市(30MB左右).

1.2 用什么东西来使用?

既然是数据库可以导入到MYSQL来使用? 虽然可以通过csv格式来进行处理,但是很麻烦很多格式基本是它独有的,那么我们要怎么使用呢?笔者在github找了一下几款可以使用到genip2的扩展库如下

maxmind/GeoIP2-php
oschwald/geoip2-golang
maxmind/GeoIP2-java
maxmind/GeoIP2-python

大部分都是官方maxmind提供的

2. 具体的IP数据库效果怎么样呢?

笔者通过Golang编写了一个简单API来提供IP地址信息查询,笔者找了一个湖南长沙的IP地址220.168.56.116 查询结果如下

{
    "City": {
        "GeoNameID": 1815577,
        "Names": {
            "de": "Changsha",
            "en": "Changsha",
            "es": "Changsha",
            "fr": "Changsha",
            "ja": "長沙市",
            "pt-BR": "Changsha",
            "ru": "Чанша",
            "zh-CN": "长沙市"
        }
    },
    "Continent": {
        "Code": "AS",
        "GeoNameID": 6255147,
        "Names": {
            "de": "Asien",
            "en": "Asia",
            "es": "Asia",
            "fr": "Asie",
            "ja": "アジア",
            "pt-BR": "Ásia",
            "ru": "Азия",
            "zh-CN": "亚洲"
        }
    },
    "Country": {
        "GeoNameID": 1814991,
        "IsoCode": "CN",
        "Names": {
            "de": "China",
            "en": "China",
            "es": "China",
            "fr": "Chine",
            "ja": "中国",
            "pt-BR": "China",
            "ru": "Китай",
            "zh-CN": "中国"
        }
    },
    "Location": {
        "AccuracyRadius": 50,
        "Latitude": 28.1792,
        "Longitude": 113.1136,
        "MetroCode": 0,
        "TimeZone": "Asia/Shanghai"
    },
    "Postal": {
        "Code": ""
    },
    "RegisteredCountry": {
        "GeoNameID": 1814991,
        "IsoCode": "CN",
        "Names": {
            "de": "China",
            "en": "China",
            "es": "China",
            "fr": "Chine",
            "ja": "中国",
            "pt-BR": "China",
            "ru": "Китай",
            "zh-CN": "中国"
        }
    },
    "RepresentedCountry": {
        "GeoNameID": 0,
        "IsoCode": "",
        "Names": null,
        "Type": ""
    },
    "Subdivisions": [
        {
            "GeoNameID": 1806691,
            "IsoCode": "43",
            "Names": {
                "en": "Hunan",
                "fr": "Province de Hunan",
                "zh-CN": "湖南"
            }
        }
    ],
    "Traits": {
        "IsAnonymousProxy": false,
        "IsSatelliteProvider": false
    }
}

准确的解析出了中国湖南长沙并且还有多国语言的称呼,笔者在试了试通过手机移动网来进行的解析,笔者在上海市杨浦区获得的经纬度是 31.0456,121.3997,但是具体经纬度结果还是相差甚远

3 总结

GeoLite2可以解决通过IP对城市级别的定位问题,但是解析出来的经纬度有比较大的偏差笔者在杨浦区经纬度解析到了闵行区,感兴趣的大家也可以下载下来体验一下,今后喵咪会给大家带来更多有趣的开源软件,多谢大家的支持下周再见.

注:笔者能力有限有说的不对的地方希望大家能够指出,也希望多多交流!

文振熙

文振熙

粉丝 351
博文 173
码字总数 227035
作品 5
杨浦
技术主管
私信 提问
加载中
请先登录后再评论。
CDH5: 使用parcels配置lzo

一、Parcel 部署步骤 1 下载: 首先需要下载 Parcel。下载完成后,Parcel 将驻留在 Cloudera Manager 主机的本地目录中。 2 分配: Parcel 下载后,将分配到群集中的所有主机上并解压缩。 3 激...

cloud-coder
2014/07/01
6.8K
1
树莓派(Raspberry Pi):完美的家用服务器

自从树莓派发布后,所有在互联网上的网站为此激动人心的设备提供了很多有趣和具有挑战性的使用方法。虽然这些想法都很棒,但树莓派( RPi )最明显却又是最不吸引人的用处是:创建你的完美家用...

异次元
2013/11/09
5.6K
8
桌面即时贴软件--GloboNote

GloboNote 是一个桌面记事软件,可帮你创建待办事宜、提醒和其他笔记信息。无限制即时贴的数量,可分组整理,支持搜索,可定制文本的显示格式(字体、颜色和大小),可将某个即时贴始终显示在...

匿名
2013/01/21
6.7K
1
XLSX读写库--EPPlus

EPPlus 是使用Open Office XML格式(xlsx)读写Excel 2007 / 2010文件的.net开发库。 EPPlus 支持: 单元格范围 单元格样式(Border, Color, Fill, Font, Number, Alignments) Charts 图片 形状...

匿名
2013/02/01
1W
2
C++模板库--C++ B-tree

这是一个google开源的C++模板库,实现了基于B-tree数据结构的有序内存容器。类似于STL的map、set、multimap和multiset模板,C++ B-tree也提供了btreemap、btreeset、btreemultimap和btreemu...

匿名
2013/02/05
3.3K
1

没有更多内容

加载失败,请刷新页面

加载更多

搞网站的你,不了解一下共享虚拟主机和备案问题

正文共:1474字 14图,预估阅读时间:4 分钟 今天分享的这一切要从域名备案说起。先科普一下,平时我们访问网站都是用域名访问的,通过DNS服务器将域名解析为IP地址(你知道上网时输入的URL...

郭松成
昨天
3
0
10 分钟学会 pillow 图像处理 16 式

PIL:Python Imaging Library,是Python环境下最受欢迎的图像处理库之一。 pillow简单优雅而功能强大,是图像相关机器学习任务中算法工程师的亲密合作伙伴。 我们将介绍pillow的如下16个图片...

zglg
昨天
3
0
3大排行榜告诉你,Java&Python有多稳

什么编程语言最受欢迎? 零基础小白学什么语言最好找工作? …… 关于这些问题的讨论从来都没停止 今天领扣🐱就来盘点一下 如今最受欢迎的语言到底是什么 Java&Python学习大礼包 资料领取方...

Lintcode
今天
10
0
这道原题答出来了还是跪!今年面试也太难了……

秋招已然到来,Amazon这不又发了一堆岗位,此时可以说是上岸最好机会!不过上周有同学反馈面试亚麻,遇到一题曾经刷过,惨的是最后还是跪了,班班仔细一问原来是这道。 给定一个整数序列,找...

九章算法
今天
0
0
【你只需看一次】YOLO 全系列目标检测算法

文章目录 一、概述 二、Yolo系列全家桶 YOLOv1 开山鼻祖之作 YOLOv2 YOLOv3 YOLOv4 目标检测tricks集大成者 YOLOv5 Fast YOLO Complex-YOLO MV-YOLO YOLO3D YOLO-6D YOLO-LITE Spiking-YOLO ......

osc_5p8bxoq2
18分钟前
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部