提供IP和归属地对应关系、手机号码和归属地关系等相对静态的数据高效查询方法。设计一种数据结构,提供以极低的内存消耗和极快的查询速度。提供一份原始的数据可以直接使用。将数据拷贝和代码拷贝到自己的项目去即可使用。可用于IP归属地显示,手机号码归属地显示等需求的开发提供方法和数据的支撑。
-
极小压缩内存
IPv4定位源数据仅仅3M多一点,国内IP定位到省级,国外定位到国家级别。号码归属地查询源数据仅仅2M多一点,能定位到市级
-
极少代码、简单易懂
只有关键d代码不到两百行。简单易懂,注释清楚。只依赖JDK,不需要引入其他依赖,直接复制代码到自己项目即可使用。完全可控,
-
扩展好
提供spring boot使用示例,开箱即用,还可以构建自己项目所需要的数据,增加或者减少数量量,比如IP定位项目里源数据只提供到省,想做到市级可简单扩展构建。
对应博客如何实现评论IP地址归属地功能
- git clone https://gitee.com/eedui/location.git
- 本地运行
- 浏览器访问体验
http://127.0.0.1:8080/currentIpLocation
http://127.0.0.1:8080/ipLocation?ip=120.239.72.20
http://127.0.0.1:8080/phoneLocation?phone=13125156666
-
将类IndexHeader、MemoryIndex直接拷到自己项目代码工程里。做为数据解析的类和查询的入口
-
将resources目录下的db目录拷贝到自己工程目录下的resources目录下,做为读取的数据源
-
整个项目构建唯一一个MemoryIndex的实例之后引入调用相应的方法即可。可以参考项目中LocationConfig配置的bean用法,将MemoryIndex作为一个单例的bean使用(由于MemoryIndex是直接将数据全部加载到内存中,一定要单例使用否则可能会占用大量内存,由于只涉及内存的查询操作所以不存在线程安全问题)