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

「喵咪开源软件推荐(3)」全球IP库-GeoLite2-City哈喽大家好啊 笔者通过 Golang 编写了一个简单 API 来提供 IP 地址信息查询 笔者找了一个湖南长沙的 IP 地址 220 168 56 116 查询结果如下 City GeoNameID 18155

大家好,欢迎来到IT知识分享网。

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

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

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": , "Names": { "de": "Changsha", "en": "Changsha", "es": "Changsha", "fr": "Changsha", "ja": "長沙市", "pt-BR": "Changsha", "ru": "Чанша", "zh-CN": "长沙市" } }, "Continent": { "Code": "AS", "GeoNameID": , "Names": { "de": "Asien", "en": "Asia", "es": "Asia", "fr": "Asie", "ja": "アジア", "pt-BR": "Ásia", "ru": "Азия", "zh-CN": "亚洲" } }, "Country": { "GeoNameID": , "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": , "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": , "IsoCode": "43", "Names": { "en": "Hunan", "fr": "Province de Hunan", "zh-CN": "湖南" } } ], "Traits": { "IsAnonymousProxy": false, "IsSatelliteProvider": false } }

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

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

3 总结

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

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

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/171296.html

(0)
上一篇 2025-02-23 11:05
下一篇 2025-02-23 11:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信