Skip to content
/ location Public

提供IP和归属地对应关系、手机号码和归属地关系等相对静态的数据高效查询方法。设计一种数据结构,提供以极低的内存消耗和极快的查询速度。提供一份原始的数据可以直接使用。将数据拷贝和代码拷贝到自己的项目去即可使用。可用于IP归属地显示,手机号码归属地显示等需求的开发提供方法和数据的支撑。

License

Notifications You must be signed in to change notification settings

eduiH/location

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

location

介绍

提供IP和归属地对应关系、手机号码和归属地关系等相对静态的数据高效查询方法。设计一种数据结构,提供以极低的内存消耗和极快的查询速度。提供一份原始的数据可以直接使用。将数据拷贝和代码拷贝到自己的项目去即可使用。可用于IP归属地显示,手机号码归属地显示等需求的开发提供方法和数据的支撑。

特点

  • 极小压缩内存

    IPv4定位源数据仅仅3M多一点,国内IP定位到省级,国外定位到国家级别。号码归属地查询源数据仅仅2M多一点,能定位到市级

  • 极少代码、简单易懂

    只有关键d代码不到两百行。简单易懂,注释清楚。只依赖JDK,不需要引入其他依赖,直接复制代码到自己项目即可使用。完全可控,

  • 扩展好

    提供spring boot使用示例,开箱即用,还可以构建自己项目所需要的数据,增加或者减少数量量,比如IP定位项目里源数据只提供到省,想做到市级可简单扩展构建。

对应博客如何实现评论IP地址归属地功能

项目运行

  1. git clone https://gitee.com/eedui/location.git
  2. 本地运行
  3. 浏览器访问体验
    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

引入说明

  1. 将类IndexHeader、MemoryIndex直接拷到自己项目代码工程里。做为数据解析的类和查询的入口

  2. 将resources目录下的db目录拷贝到自己工程目录下的resources目录下,做为读取的数据源

  3. 整个项目构建唯一一个MemoryIndex的实例之后引入调用相应的方法即可。可以参考项目中LocationConfig配置的bean用法,将MemoryIndex作为一个单例的bean使用(由于MemoryIndex是直接将数据全部加载到内存中,一定要单例使用否则可能会占用大量内存,由于只涉及内存的查询操作所以不存在线程安全问题)

About

提供IP和归属地对应关系、手机号码和归属地关系等相对静态的数据高效查询方法。设计一种数据结构,提供以极低的内存消耗和极快的查询速度。提供一份原始的数据可以直接使用。将数据拷贝和代码拷贝到自己的项目去即可使用。可用于IP归属地显示,手机号码归属地显示等需求的开发提供方法和数据的支撑。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages