`
RamosLi
  • 浏览: 119163 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

搭建自己的IP地址库

阅读更多

先介绍下背景:我负责微爱的后端,微爱是一款专给情侣使用的应用,官网地址:http://www.welove520.com 。


最近我想做这么一件事:分析用户的地域分布,比如北京多少人,四川多少人。现在有的数据是用户IP地址,所以首先需要根据IP地址查询用户所在省市,然后再统计分析。这个问题的关键是如何通过IP查询到用户所在地区。解决方案有俩:1. 搭建自己的IP 地址库,2. 使用其他网站提供的IP查询API。 最后我选择了方案1,下面把详细方法分享出来,互联网的精神就在于共享,希望此举对其他人有用。


步骤:

1. 下载纯真IP地址数据库,据说这个是国内最准确的,百度一下就可以找到很多下载。下载后安装运行,如下图:


我的IP地址是117.79.229.18,查询出来是在江苏,其实我在北京,IP库不是特别准确,有误差,免费的就凑合用吧,不想花钱买收费的。

2. 点击解压,会生成一个txt文件,如下图:

每一行的含义是这样的,比如第10行,表示:IP地址在1.1.0.0---1.1.0.255之间的是福建电信的。

3. 将IP数据导入数据库,我的DB是mysql,系统Linux。
表结构是这样的:

 
其中 ip_segment_begin_long 和 ip_segment_end_long是将IP地址转换成long型后存入的,并且这两个字段联合为唯一键,这么做是为了查询更快。
数据导入我就不多说了,用mysql的load data即可。导完后有44万行数据。

4. 至此,自己的IP地址库算是有了。接下来就是查询了,我的sql语句如下:
select * from ip_address where ip_segment_begin_long <= ? and ip_segment_end_long >= ?
问号处是将IP地址转换成long型后的值。这样,我就可以根据IP查询用户所在地了!
 
0
3
分享到:
评论
4 楼 xingkong69663 2017-02-21  
推荐一个开源项目,https://github.com/wzhe06/ipdatabase,JAVA写的,二叉树搜索实现IP地址查询,使用2015年广告行业官方IP地址库,不用远程请求API,直接在本地批量快速查询IP地址。
3 楼 a8221423 2014-07-17  
我也用这个表结构, 也是这样定位, 但是很慢,定位100个用了10几秒。
我没建唯一键, 除了唯一键还有其他优化方法吗
2 楼 RamosLi 2012-09-25  
maxliz 写道
调用别人提供的webservice不是挺好的吗?

求靠谱的API推荐。。。
比如我要分析100万用户,调用别人的API速度可能就会慢很多,而且免费的API一般都有配额限制吧
1 楼 maxliz 2012-09-25  
调用别人提供的webservice不是挺好的吗?

相关推荐

    2022年山东省职业院校技能大赛中职组“网络搭建与应用”赛题题库

    通过竞赛,检验参赛选手的计算机网络的拓扑规划能力、IP地址规划能力、综合布线的施工测试能力、设备配置与连接能力、网络安全管理与维护能力、服务器的搭建与调试能力、故障排除和验证能力、应用的接入与测试能力、...

    2023年江苏省职业院校技能大赛中职组“网络搭建与应用”赛题

    通过竞赛,检验参赛选手的计算机网络的拓扑规划能力、IP地址规划能力、综合布线的施工测试能力、设备配置与连接能力、网络安全管理与维护能力、服务器的搭建与调试能力、故障排除和验证能力、应用的接入与测试能力、...

    开源软件库源码 软件应用源码 软件库app源码 软件库后端源码

    如果你正在寻找一个开源的应用源码和后端源码,那么小丫软件库是一个不错的选择。... 后台管理地址为:域名或IP地址/admin。登陆后,你可以根据自己的需求进行配置...修改为你自己的域名或IP地址,确保与你的后端搭建一致

    【最新】Linux平台: 基于osip eXosip库的服务器, 客户端源码, 可以编译通过,正常使用修改IP地址就可以了

    编译前,需要自己先搭建osip eXosip的库环境,去官网下载,就好了, Linux平台: 基于osip eXosip的服务器, 客户端源码, 可以编译通过,正常使用修改IP地址就可以了

    Python搭建代理IP池实现存储IP的方法

    上一文写了如何从代理服务网站提取 IP,本文就讲解如何存储 IP,毕竟...Python搭建代理IP池(一)- 获取 IP Python搭建代理IP池(三)- 检测 IP Python搭建代理IP池(四)- 接口设置与整体调度 使用的库:pymysql 定义

    Ubuntu上搭建SVN服务器全攻略

    Ubuntu上搭建SVN服务器详细步骤。 目 录 1 概述 1 2 安装Ubuntu 9.10服务器 1 3 安装Apache服务器 1 4 创建SVN服务器 1 4.1 安装SVN 1 ...附录B:Ubuntu 9.10修改IP地址 10 附录C:Ubuntu下配置SSH服务 10

    项目8-局域网服务器的搭建.pptx

    告知www.xtvtc.edu.cn的域名服务器的IP地址或告知找不到数据 DNS完整的查询过程 主机 本地NDS服务器 项目8-局域网服务器的搭建全文共42页,当前为第12页。 HTTP和万维网 项目8-局域网服务器的搭建全文共42页,当前为...

    搭建部署Harbor企业级私有仓库

    IP地址 10.0.0.43 cd /usr/local/sbin/ chmod +x docker-compose docker-compose -v tar zxf harbor-offline-installer-v1.8.1.tgz cd harbor/ mv harbor /usr/local/ cd /usr/local/ vim harbor.yml ...

    小丫软件库最新开源app源码+后端源码

    后台地址:域名或者ip/admin 然后自己修改配置即可 后端搭建完成,现在导入iapp源码 导入iapp源码之后,修改mian.iyu载入事件的对接api和url就可以打包了 sss url=”域名/json/” sss api=”域名/assets/”

    stm32与esp8266搭建tcp服务器

    使用到的设备有:stm32f103c8t6、esp826601s模块、usb转TTL模块 stm32与esp8266搭建tcp服务器 可看到esp8266建立WiFi热点为:Mypro Ip地址:192.168.1.1

    docker创建私有镜像仓库搭建教程

    IP地址:10.211.55.30 dockere版本:1.10.3 镜像仓库:v2 首先在10.211.55.30机器上下载registry镜像 $ docker pull registry 也可以进行镜像导入的方法进行离线的安装。可以去我的网盘中下载:...

    源码线上培训考试系统搭建源码

    这是一个线上培训系统的源码,按教程搭建起来很简单,经测试是可以二次开发的,有点播,直播,题库,考试,支付和...内网以及使用ip访问:直接填写ip地址,示例如下:add name="122.114.68.70" 注意:不需要带端口号。

    前言---白日门服务端搭建和客户端编译.mp4

    本视频主要讲述对白日门手游的搭建和客户端的IP地址修改 改IP即可 所需工具,宝塔5.4或新版宝塔(注:新版只支持Windows server版本),apktool,微软64位运行库,N11数据库管理软件,N++文本编辑,好压,搜狗...

    网校培训系统搭建源代码和部署文档

    这是一个网校培训系统的源代码和部署文档,可以二次开发,按教程搭建起来很简单,有点播版块,直播版块,题库版块,...内网以及使用ip访问:直接填写ip地址,示例如下:add name="122.114.68.70" 注意:不需要带端口号。

    mysql主从复制.doc

    从库的ip地址:127.0.0.1 从库的端口:3308 注:主库和从库版本可以一致也可以不一致,需要说明一点,如果两者版本不一致,一般主库的版本需要比从库的版本低,这样就可以避免由于版本问题,有些sql不能执行的问题。

    dubbo+zookeeper集成搭建

    zookeeper用来注册服务和进行负载均衡,哪一个服务由哪一个机器来提供必需让调用者知道,简单来说就是ip地址和服务名称的对应关系。dubbo:是管理中间层的工具,在业务层到数据仓库间有非常多服务的接入和服务提供者...

    购物商城APP以及配套的后台管理系统

    计算机专业的毕业设计,...APP可以使用hbuilderx进行真机运行(真机运行需使手机和电脑处于同一局域网下,并且APP里的ip地址需要更换成自己当前ip地址),暂时就这些,有什么问题可以私信或者评论,我有时间就会看的

    搭建Docker私有仓库

    IP地址 10.0.0.43 服务器系统 Centos7.3 内存 1G CPU 2核 IP地址 10.0.0.44 先在43主机上操作 docker save -o nginx.tar nginx:1.1 docker rmi nginx:1.1 docker stop df0f22488230 docker ...

    华为模拟器Ensp入门不求人系列视频教程.zip

    目录 ensp使用教程 1.mp4 ensp使用教程 2.mp4 ensp使用教程-AAA.mp4 ...ensp使用教程-拓扑搭建和IP地址的配置.mp4 ensp使用教程-设备选取详解.mp4 ensp使用教程-链路聚合.mp4 ensp使用教程-静态路由.mp4

    详解docker容器分配静态IP

    最近因为工作要求需要用学习使用docker,最后卡...但这里有一个问题,这个IP地址并不是静态分配的,这对我们的对容器的实例的网络管理造成一了些困难。这里笔者并不想直接给出解决方案,因为那样子并没有什么卵用,理解

Global site tag (gtag.js) - Google Analytics