搭建自己的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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值