发布日期:2023-03-31来源:武汉北大青鸟武汉校区作者:027hpit
近我想做这么一件事:分析用户的地域分布,比如北京多少人,四川多少人。现在有的数据是用户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查询用户所在地了!
Copyright (c) 2006-2023 武汉宏鹏教育咨询有限公司 版权所有 All Rights Reserved.