根据ip查经纬度软件_「喵咪开源软件推荐(3)」全球IP库-GeoLite2-City

哈喽大家好啊!喵咪开源软件推荐(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 进行维护的,

34ffef44c10697f586924aabd295a29c.png

GenLite2 提供的IP数据库格式有两种一种是二进制DB文件,另外一种是csv文件,首先还是推荐使用DB文件,并且精准度有两个等级,一个是精确到国家(数据相对比较少1.2MB)另外一个就是精确到城市(30MB左右).

1.2 用什么东西来使用?

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

maxmind/GeoIP2-phposchwald/geoip2-golangmaxmind/GeoIP2-javamaxmind/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,但是具体经纬度结果还是相差甚远

d3a24341f1c7f82e98b21a9b1ca0565c.png

3 总结

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

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值