IP/GPS 解析服务,ip2region,逆地理编码
个人博客:无奈何杨(wnhyang)
个人语雀:wnhyang
共享语雀:在线知识共享
Github:wnhyang - Overview
简介
放在前面,怕有些人看不下去错过,整合了身份证 / 手机号 /IP
/GPS
解析的工具将在下一篇文章推出,并将全部数据和代码放在 Github
和 Gitee
上。
接着前一篇的的身份证 / 手机号解析服务,其四者难度对比是这样的,身份证
< 手机号 < IP
<
GPS
。也比较好理解,毕竟是从点到线再到面,难度可想而知。GPS
用词可能不当,我还是解释一下,这里的意思是指通过经纬度解析到行政区划 / 地理信息,也可以讲是逆地理编码。
身份证和手机号都相对简单,数据本身不大,而且规则也比较清晰,所以比较容易。相比之下 IP
和 GPS
的难度就大了太多了,IP
从 v4
到 v6
已经是数据量的极大扩展,而且这些数据很难获取,对于 ISP
拥有的 IP
范围匹配又是很大的难题,是需要算法设计的。好像我一直都是这样,简单的事做着没意思,困难的事情又不知道怎么做,还没开始就准备放弃了。就跟打游戏一样,碾压式的赢没有快感,被碾压的输又没有乐趣,只有均式相持拼尽全力的赢才是畅快。回到正题,身份证和手机都是有规律的,不管是数据的管理和搜素算法都可以自己做。而对于 IP
,首先数据量就比较大,数据存储、读取、检索都是考虑的点。这还只是谈到了 IP
解析,GPS
的解析就更复杂了。把 IP
数据比做标尺上的刻度的话,GPS
数据就是组成标尺分子原子,只是个小小比喻不用在意😂毕竟数据量从有限的线升级为无限的面,而且经纬度是针对的是地球这个不规则的球体,人类又将不规则的大陆海洋划分为更多密密麻麻的不规则多边形,所有的不规则多边形又是由众多经纬度的点连线划分出来的,想想就知道有多复杂了。
IP 解析
首先就要谈谈这个 IP 解析,真的搞的我头都要炸了。
历程,1、为了简单方便,直接寻找性能和准确性都不错的 api
调用;2、发现这些 api
要么有限制,要么要认证,数据还不是很满意,而且性能不能达到我的要求(30ms
以内);3、发现一些免费有趣的 api
,开始跑偏,玩了起来;4、发现狮子的魂 /ip2region 这个项目,其提供了 IP
数据存储和检索的离线解析方案,由此想尝试自己的离线 IP
解析;5、数据从哪里搞呢,本身狮子的魂 /ip2region 项目中已经提供了一份数据,但数据比较简单,不大够用,其实项目已经提供了数据修改更新的方法,但认为手动补充有比较麻烦,所以又琢磨起数据源。